ModbusClient.can

MakeConfig.can
  Added 
ModbusClientCommon.cin
  Introduced different functions for ModbusFuncCode 0x01 and 0x02. B&R handles them differently
This commit is contained in:
Jonny007-MKD 2014-06-16 12:50:35 +00:00
parent c93d7d22f2
commit 9dc7ffd47d
10 changed files with 735 additions and 291 deletions

View file

@ -1,4 +1,4 @@
;CANoe Version |4|7|1|35748 MakeConfig
;CANoe Version |4|7|1|35745 MakeConfig
Version: 8.2.40 Build 40
32 PRO
5
@ -1261,9 +1261,37 @@ Grafik-Fenster
237
0
0
1
0
0
0
-11
0
0
0
0
0
0
0
400
0
Tahoma
0
1
0
0
0
-11
0
0
0
34
0
0
0
400
0
Tahoma
0
1
1
@ -2933,7 +2961,7 @@ End_Of_Object VGrMnBox 3
VDOLocalInfoStruct 3 Begin_Of_Object
3
1
77
83
VDAOBus 4 Begin_Of_Object
1
1
@ -2955,7 +2983,7 @@ VConfigurationRoot 8 Begin_Of_Object
End_Of_Object VConfigurationRoot 8
<VFileName V4 QL> 1 "include\CAPL\MakeConfig.can"
1
J:\HsKA\NB7\Bachelorthesis\CANoe\Modbus\include\CAPL\MakeConfig.cbf
J:\HsKA\NB7\Bachelorthesis\CANoe\Modbus-CAPL\include\CAPL\MakeConfig.cbf
MakeConfig
MakeConfig
5
@ -3063,7 +3091,7 @@ VSimulinkModelViewerConfiguration 7 Begin_Of_Object
End_Of_Object VSimulinkModelViewerConfiguration 7
1
0
566845561
3530245935
0
NodeSignalPanelBustypeCount 0
End_Of_Object VSimulationNode 6
@ -3101,7 +3129,7 @@ NULL
End_Of_Object VDOLocalInfoStruct 3
0.000000
0 0
1 1 0 59420 1 233 1 2882400001 98 331 309 611 2882400002 0 0 0 0 0 0 1 2882400001 1270 1270 311 311 2882400002 0 0 0 528538608 0 526135044 3
1 1 0 59420 1 233 1 2882400001 98 331 309 611 2882400002 0 0 0 0 0 0 1 2882400001 1270 1270 311 311 2882400002 0 0 0 1664573080 0 0 3
SS_BEGIN_COMMON_INFO
1
0
@ -3113,7 +3141,7 @@ Ethernet
11
1
1
345965688 1 0 1 0 0 1 0 0 0 2000 1
7573328 1 0 1 0 0 1 0 0 0 2000 1
SS_BEGIN_COMMON_INFO
1
3
@ -3224,7 +3252,7 @@ End_Of_Serialized_Data 2
End_Of_Object VWriteBox 2
VWinStore 2 Begin_Of_Object
1
22 2 3 -32088 -32000 -1 -1 0 0 930 767
22 2 3 -32088 -32000 -1 -1 -10088 -10000 -9070 -9233
End_Of_Child_List
End_Of_Object VWinStore 2
VWinStore 2 Begin_Of_Object

View file

@ -2,16 +2,16 @@
Version: 8.2.40 Build 40
32 PRO
10
APPDIR Vector.CANoe.SignalGenerators.DLL
Vector.CANoe.SignalGenerators, Version=8.2.40.0, Culture=neutral, PublicKeyToken=null
Vector.CANoe.SignalGenerators.ComponentWrapper
1
1.0.1
APPDIR Vector.CANoe.Debugger.DLL
Vector.CANoe.Debugger, Version=8.2.40.0, Culture=neutral, PublicKeyToken=null
Vector.CANoe.Debugger.DebuggerComponent
2
1
1.0.0
APPDIR Vector.CANoe.SignalGenerators.DLL
Vector.CANoe.SignalGenerators, Version=8.2.40.0, Culture=neutral, PublicKeyToken=null
Vector.CANoe.SignalGenerators.ComponentWrapper
2
1.0.1
VGlobalConfiguration 1 Begin_Of_Object
17
VGlobalParameters 2 Begin_Of_Object
@ -67,7 +67,6 @@ DialogBegin
1
285 569 816 1103
SymbolExplorerDialogBegin
1
HistoryBegin
1 0
@ -79,7 +78,7 @@ Begin
Bus statistic signals
( 1 ( 1 ( 0 ) 0 ) 0 )
Busstatistik Signale
( 1 ( 1 ( 0 ) 0 ) 0 )
( 1 ( 0 ) 0 )
Modbus
( 2 ( 0 ) 0)
TE0001
@ -209,12 +208,12 @@ SymbSelHeaderMgrBegin
SymbSelHeaderMgrEnd
End
Begin
3 0 16
3 10 -1
2
Modbus
Systemvariablen
( 1 ( 0 ) 3 ( 1 ( 2 ( 1 ( 0 ) 2 ( 0 ) 0 ) 0 ) 0 ) 0 )
( 1 ( 0 ) 3 ( 2 ( 2 ( 1 ( 0 ) 0 ) 0 ) 0 ) 0 )
SymbSelHeaderMgrBegin
1 4
0 1 200 0 0
@ -742,13 +741,13 @@ Begin_Of_Multi_Line_String
Copyright (c) 2001-2006 Actipro Software LLC. All rights reserved.
http://www.ActiproSoftware.com/Products/DotNet/
--><ToolWindowLayout Version="1.0"><LayoutData><HostContainerControl><ToolWindowContainer Dock="Left" Size="412, 393" SelectedToolWindowGuid="87323901-fe96-4011-a82f-0e1b8627507a"><ToolWindow Key="{E6849C53-63F6-4A32-9B1C-7018D50DDE09}" Guid="87323901-fe96-4011-a82f-0e1b8627507a" DockedSize="408, 161" FloatingLocation="6, 66" FloatingSize="677, 213" HasOptions="False" ImageIndex="-1" Text="Daten" TitleBarText="Daten"><AutoHideStateInfo RootDock="Left" /><DockedInsideHostStateInfo RootDock="Left" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Bottom" Size="1192, 285" SelectedToolWindowGuid="ac9be154-bd12-4ff9-b255-03e05277dbe2"><ToolWindow K
--><ToolWindowLayout Version="1.0"><LayoutData><HostContainerControl><ToolWindowContainer Dock="Left" Size="424, 393" SelectedToolWindowGuid="87323901-fe96-4011-a82f-0e1b8627507a"><ToolWindow Key="{E6849C53-63F6-4A32-9B1C-7018D50DDE09}" Guid="87323901-fe96-4011-a82f-0e1b8627507a" DockedSize="420, 161" FloatingLocation="6, 66" FloatingSize="677, 213" HasOptions="False" ImageIndex="-1" Text="Daten" TitleBarText="Daten"><AutoHideStateInfo RootDock="Left" /><DockedInsideHostStateInfo RootDock="Left" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Bottom" Size="1192, 285" SelectedToolWindowGuid="ac9be154-bd12-4ff9-b255-03e05277dbe2"><ToolWindow K
kPersistNoLineBreak
ey="{28077F35-C142-4ACC-B040-1BF0AB026C11}" Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" DockedSize="201, 281" FloatingLocation="111, 442" FloatingSize="1192, 514" HasOptions="False" ImageIndex="-1" Text="Trace" TitleBarText="Trace"><AutoHideStateInfo RootDock="Bottom" /><DockedInsideHostStateInfo RootDock="Bottom" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Top" Size="1192, 227" SelectedToolWindowGuid="7f29b491-3ada-4572-b140-b422651d6fed"><ToolWindow Key="{8F3DFCAC-9CCB-45C2-AF10-5DEC039B5956}" Guid="7f29b491-3ada-4572-b140-b422651d6fed" DockedSize="201, 223" FloatingLocation="6, 433" FloatingSize="300, 180" HasOptions="False" ImageIndex="-1" Text="Write" TitleBarText="Write"><AutoHideStateInfo RootDock="Top" /><DockedInsideHostStateInfo RootDock="Top" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer></HostContainerControl><AutoHide Dock="Lef
kPersistNoLineBreak
t" /><AutoHide Dock="Right" /><AutoHide Dock="Top" /><AutoHide Dock="Bottom" /><TabbedDocuments Orientation="Horizontal" /><FloatingContainers /><Hidden><ToolWindow Key="{49714911-9568-49CC-A9CE-3B0905658C4A}" Guid="db27ffca-d17e-40f0-a70b-be70fe5eb4ec" State="DockableInsideHost" DockedSize="381, 0" FloatingLocation="1151, 79" FloatingSize="300, 180"><AutoHideStateInfo RootDock="Right" /><DockedInsideHostStateInfo RootDock="Right" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow><ToolWindow Key="{F5E09530-AAE7-48d9-B925-CEF5027AA97D}" Guid="b2726676-2b89-4fee-b1a3-2be7bfbdec73" State="DockableInsideHost" DockedSize="176, 228" FloatingLocation="53, 379" FloatingSize="325, 380"><AutoHideStateInfo RootDock="Left" /><DockedInsideHostStateInfo RootDock="Left" IsAttached="False"><DockedBy Guid="87323901-fe96-4011-a82f-0e1b8627507a" RootDock="Left" DockOperationType="RightOuter" IsTopMost="True" /><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDoc
t" /><AutoHide Dock="Right" /><AutoHide Dock="Top" /><AutoHide Dock="Bottom" /><TabbedDocuments Orientation="Horizontal" /><FloatingContainers /><Hidden><ToolWindow Key="{49714911-9568-49CC-A9CE-3B0905658C4A}" Guid="db27ffca-d17e-40f0-a70b-be70fe5eb4ec" State="DockableInsideHost" DockedSize="381, 0" FloatingLocation="1151, 79" FloatingSize="300, 180"><AutoHideStateInfo RootDock="Right" /><DockedInsideHostStateInfo RootDock="Right" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow><ToolWindow Key="{F5E09530-AAE7-48d9-B925-CEF5027AA97D}" Guid="b2726676-2b89-4fee-b1a3-2be7bfbdec73" State="DockableOutsideHost" DockedSize="176, 228" FloatingLocation="606, 459" FloatingSize="325, 380"><AutoHideStateInfo RootDock="Left" /><DockedInsideHostStateInfo RootDock="Left" IsAttached="False"><DockedBy Guid="87323901-fe96-4011-a82f-0e1b8627507a" RootDock="Left" DockOperationType="RightOuter" IsTopMost="True" /><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootD
kPersistNoLineBreak
k="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow><ToolWindow Key="{224229E5-10CA-425F-8B6F-C213CD04C44F}" Guid="859d3aae-7aff-47f2-8ca4-bb7d01f32282" State="DockableInsideHost" DockedSize="424, 358" FloatingLocation="347, 323" FloatingSize="890, 483"><AutoHideStateInfo RootDock="Right" /><DockedInsideHostStateInfo RootDock="Right" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></Hidden></LayoutData><CustomData /></ToolWindowLayout>
ock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow><ToolWindow Key="{224229E5-10CA-425F-8B6F-C213CD04C44F}" Guid="859d3aae-7aff-47f2-8ca4-bb7d01f32282" State="DockableInsideHost" DockedSize="424, 358" FloatingLocation="347, 323" FloatingSize="890, 483"><AutoHideStateInfo RootDock="Right" /><DockedInsideHostStateInfo RootDock="Right" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></Hidden></LayoutData><CustomData /></ToolWindowLayout>
End_Of_Serialized_Data 3
End_Of_Object VDesktop 3
VDesktop 3 Begin_Of_Object
@ -1020,7 +1019,7 @@ VUniqueBox 16 Begin_Of_Object
VBoxRoot 17 Begin_Of_Object
1
1
1 0 0 1 -1 -1 -1 -1 0 0 776 389
1 0 0 1 -1 -1 -1 -1 0 0 764 389
Graphic
1
@ -1028,7 +1027,7 @@ MDI_DOCK_INFO_END
5
1
6
0 1 -1 -1 -1 -1 0 0 776 389
0 1 -1 -1 -1 -1 0 0 764 389
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
END_OF_DOCK_INFO
1
@ -1037,7 +1036,7 @@ END_OF_DOCK_INFO
0 1 -1 -1 -1 -1 451 334 1045 683
0
1
776 389
764 389
END_OF_DESKTOP_DATA
6
0 1 -1 -1 -1 -1 1 375 779 615
@ -1142,7 +1141,7 @@ TypeRef:2
--TextFormatter: End of Object--
VSignalObjectStreamer 14 Begin_Of_Object
1
8
9
VPredefinedSignalObject 15 Begin_Of_Object
1
VHostSignal 16 Begin_Of_Object
@ -1352,8 +1351,8 @@ VSysVarObject 15 Begin_Of_Object
VHostSignal 16 Begin_Of_Object
2
3
Ethernet1::Client_2::Data::InputBits [0]
0
Client_2::InputBits_[0]
1
End_Of_Object VHostSignal 16
15
ValueObjectConfiguration::VConfiguredSysVar 16 Begin_Of_Object
@ -1379,15 +1378,15 @@ End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 16
End_Of_Serialized_Data 15
End_Of_Object VSysVarObject 15
[MeasurementObject]
Ethernet1::Client_2::Data::InputBits [0]
Client_2::InputBits_[0]
"" 223 b86b8 -1. 1. -100. 100. 1 0 0 0 36000000 1 1 0 0
VSysVarObject 15 Begin_Of_Object
1
VHostSignal 16 Begin_Of_Object
2
3
Ethernet1::Client_2::Data::InputBits [1]
0
Client_2::InputBits_[1]
1
End_Of_Object VHostSignal 16
15
ValueObjectConfiguration::VConfiguredSysVar 16 Begin_Of_Object
@ -1413,15 +1412,15 @@ End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 16
End_Of_Serialized_Data 15
End_Of_Object VSysVarObject 15
[MeasurementObject]
Ethernet1::Client_2::Data::InputBits [1]
Client_2::InputBits_[1]
"" 223 d7ff -1. 1. -100. 100. 1 0 0 0 36000000 1 1 0 0
VSysVarObject 15 Begin_Of_Object
1
VHostSignal 16 Begin_Of_Object
2
3
Ethernet1::Client_2::Data::InputRegisters [0]
0
Client_3::InputBits_[5]
1
End_Of_Object VHostSignal 16
15
ValueObjectConfiguration::VConfiguredSysVar 16 Begin_Of_Object
@ -1435,27 +1434,27 @@ VConfigSysVar 19 Begin_Of_Object
VConfigEvent 20 Begin_Of_Object
1
End_Of_Object VConfigEvent 20
Ethernet1::Client_2::Data
InputRegisters
Ethernet1::Client_3::Data
InputBits
End_Of_Object VConfigSysVar 19
End_Of_Object ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 18
End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 17
0
5
1
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 16
End_Of_Serialized_Data 15
End_Of_Object VSysVarObject 15
[MeasurementObject]
Ethernet1::Client_2::Data::InputRegisters [0]
"" 223 ff00 -1. 6071. -100. 100. 1000 0 0 0 36000000 1 1 0 0
Client_3::InputBits_[5]
"" 223 9314ff 0. 1. -100. 100. 1 0 0 0 36000000 1 1 0 0
VSysVarObject 15 Begin_Of_Object
1
VHostSignal 16 Begin_Of_Object
2
3
Ethernet1::Client_2::Data::InputRegisters [1]
0
Client_2::InputRegisters_[0]
1
End_Of_Object VHostSignal 16
15
ValueObjectConfiguration::VConfiguredSysVar 16 Begin_Of_Object
@ -1474,17 +1473,51 @@ InputRegisters
End_Of_Object VConfigSysVar 19
End_Of_Object ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 18
End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 17
1
0
1
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 16
End_Of_Serialized_Data 15
End_Of_Object VSysVarObject 15
[MeasurementObject]
Ethernet1::Client_2::Data::InputRegisters [1]
"" 223 8000 0. 3. -100. 100. 1 0 0 0 36000000 0 1 0 0
Client_2::InputRegisters_[0]
"" 223 ff00 2746. 6071. -100. 100. 500 0 0 0 36000000 1 1 0 0
VSysVarObject 15 Begin_Of_Object
1
VHostSignal 16 Begin_Of_Object
2
3
Client_3::InputRegisters_[3]
1
End_Of_Object VHostSignal 16
15
ValueObjectConfiguration::VConfiguredSysVar 16 Begin_Of_Object
1
ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 17 Begin_Of_Object
1
ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 18 Begin_Of_Object
1
VConfigSysVar 19 Begin_Of_Object
1
VConfigEvent 20 Begin_Of_Object
1
End_Of_Object VConfigEvent 20
Ethernet1::Client_3::Data
InputRegisters
End_Of_Object VConfigSysVar 19
End_Of_Object ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 18
End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 17
3
1
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 16
End_Of_Serialized_Data 15
End_Of_Object VSysVarObject 15
[MeasurementObject]
Client_3::InputRegisters_[3]
"" 223 228b22 8987. 19894. -100. 100. 1000 0 0 0 36000000 1 1 0 0
[GraphWindow:x_x_x_x_x_x_WindowBk_Grid_AxisBk_XAxisFr_YAxisFr_x_x_x_x_x_x]
1349149.0723900001 2194997.2015200001 141905.54316 200000 36000000 1 ffffff b2b2b2 ffffff 0 0 0 0 1 1 1 0
5210346.6428800002 5634098.14585 240215.71337000001 200000 36000000 1 ffffff b2b2b2 ffffff 0 0 0 0 1 1 1 0
0 30 5000
0
0 100
@ -1495,7 +1528,7 @@ Ethernet1::Client_2::Data::InputRegisters [1]
0
1
41943040
4
8
1416 25200245
Grafik-Fenster
<VFileName V4 QL> 1 ""
@ -1569,7 +1602,7 @@ Tahoma
262
0 10
1
6
7
1
0 1
Eth 1::Bus load [%]
@ -1583,23 +1616,28 @@ Eth 1::Packet rate [pkt/s]
1
4 4
Ethernet1::Client_2::Data::InputBits [0]
Client_2::InputBits_[0]
755384 0
1
5 5
Ethernet1::Client_2::Data::InputBits [1]
Client_2::InputBits_[1]
55295 0
1
6 6
Ethernet1::Client_2::Data::InputRegisters [0]
65280 0
Client_3::InputBits_[5]
9639167 0
1
7 7
Ethernet1::Client_2::Data::InputRegisters [1]
32768 0
Client_2::InputRegisters_[0]
65280 0
1
8 8
Client_3::InputRegisters_[3]
2263842 0
0
<VFileName V4 QL> 1 "..\..\..\..\..\Public\Documents\Vector\CANwin\Public\Documents\demos\demo_can_cn\cansystemdemo\CANoe_Grafik_2.mdf"
0 0 0 0 0 0 0 0
@ -1639,6 +1677,7 @@ Ethernet1::Client_2::Data::InputRegisters [1]
0
0
0
0
1 12
1 1 1 0 0 0 0 0 0 0 0 0
0 1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1
@ -4044,7 +4083,7 @@ MDI_DOCK_INFO_END
1
6
0 1 -1 -1 -8 -30 -138 106 539 323
6 1 0 0 0 0 0 0 677 213 0 0 1 8084 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 6 66 1 0 0 0 1 408 0 59420 1
6 1 0 0 0 0 0 0 677 213 0 0 1 8084 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 6 66 1 0 0 0 1 420 0 59420 1
END_OF_DOCK_INFO
1
2
@ -4074,7 +4113,7 @@ End_Of_Object VBoxRoot 15
End_Of_Object VDataBox 14
1
6
15
17
VSysVarObject 14 Begin_Of_Object
1
VHostSignal 15 Begin_Of_Object
@ -4431,7 +4470,7 @@ End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 15
End_Of_Serialized_Data 14
End_Of_Object VSysVarObject 14
[Begin_of_Item]
2 15
2 18
1 1 10 0 0 16777215
0 1000 0 0
[End_of_Item]
@ -4467,7 +4506,7 @@ End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 15
End_Of_Serialized_Data 14
End_Of_Object VSysVarObject 14
[Begin_of_Item]
2 16
2 19
1 1 2 0 0 16777215
0 1000 0 0
[End_of_Item]
@ -4500,42 +4539,6 @@ End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class
2
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 15
End_Of_Serialized_Data 14
End_Of_Object VSysVarObject 14
[Begin_of_Item]
2 14
1 1 2 0 0 16777215
0 1000 0 0
[End_of_Item]
VSysVarObject 14 Begin_Of_Object
1
VHostSignal 15 Begin_Of_Object
2
3
RxPacketRateAvg
0
End_Of_Object VHostSignal 15
14
ValueObjectConfiguration::VConfiguredSysVar 15 Begin_Of_Object
1
ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16 Begin_Of_Object
1
ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17 Begin_Of_Object
1
VConfigSysVar 18 Begin_Of_Object
1
VConfigEvent 19 Begin_Of_Object
1
End_Of_Object VConfigEvent 19
_Statistics::Eth1
RxPacketRateAvg
End_Of_Object VConfigSysVar 18
End_Of_Object ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17
End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16
-1
2
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 15
End_Of_Serialized_Data 14
End_Of_Object VSysVarObject 14
[Begin_of_Item]
@ -4548,6 +4551,42 @@ VSysVarObject 14 Begin_Of_Object
VHostSignal 15 Begin_Of_Object
2
3
RxPacketRateAvg
0
End_Of_Object VHostSignal 15
14
ValueObjectConfiguration::VConfiguredSysVar 15 Begin_Of_Object
1
ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16 Begin_Of_Object
1
ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17 Begin_Of_Object
1
VConfigSysVar 18 Begin_Of_Object
1
VConfigEvent 19 Begin_Of_Object
1
End_Of_Object VConfigEvent 19
_Statistics::Eth1
RxPacketRateAvg
End_Of_Object VConfigSysVar 18
End_Of_Object ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17
End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16
-1
2
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 15
End_Of_Serialized_Data 14
End_Of_Object VSysVarObject 14
[Begin_of_Item]
2 20
1 1 2 0 0 16777215
0 1000 0 0
[End_of_Item]
VSysVarObject 14 Begin_Of_Object
1
VHostSignal 15 Begin_Of_Object
2
3
Ethernet1::Client_2::Config::Interval
0
End_Of_Object VHostSignal 15
@ -4615,7 +4654,79 @@ End_Of_Object VSysVarObject 14
1 1 2 0 0 16777215
-1000 1000 -1000 0
[End_of_Item]
34 219 16 152 75 75 44 156 191 100 1
VSysVarObject 14 Begin_Of_Object
1
VHostSignal 15 Begin_Of_Object
2
3
Ethernet1::Client_3::Data::InputBits
0
End_Of_Object VHostSignal 15
14
ValueObjectConfiguration::VConfiguredSysVar 15 Begin_Of_Object
1
ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16 Begin_Of_Object
1
ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17 Begin_Of_Object
1
VConfigSysVar 18 Begin_Of_Object
1
VConfigEvent 19 Begin_Of_Object
1
End_Of_Object VConfigEvent 19
Ethernet1::Client_3::Data
InputBits
End_Of_Object VConfigSysVar 18
End_Of_Object ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17
End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16
-1
2
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 15
End_Of_Serialized_Data 14
End_Of_Object VSysVarObject 14
[Begin_of_Item]
2 14
1 8 2 0 0 16777215
4.94066e-321 1 4.94066e-321 0
[End_of_Item]
VSysVarObject 14 Begin_Of_Object
1
VHostSignal 15 Begin_Of_Object
2
3
Ethernet1::Client_3::Data::InputRegisters
0
End_Of_Object VHostSignal 15
14
ValueObjectConfiguration::VConfiguredSysVar 15 Begin_Of_Object
1
ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16 Begin_Of_Object
1
ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17 Begin_Of_Object
1
VConfigSysVar 18 Begin_Of_Object
1
VConfigEvent 19 Begin_Of_Object
1
End_Of_Object VConfigEvent 19
Ethernet1::Client_3::Data
InputRegisters
End_Of_Object VConfigSysVar 18
End_Of_Object ValueObjectConfiguration::Detail::AbstractConfiguredValueObject 17
End_Of_Object ValueObjectConfiguration::Detail::VConfiguredValueObjectBase<class_ValueObjectConfiguration::IConfiguredSysVar> 16
-1
2
End_Of_Object ValueObjectConfiguration::VConfiguredSysVar 15
End_Of_Serialized_Data 14
End_Of_Object VSysVarObject 14
[Begin_of_Item]
2 15
1 8 2 0 0 16777215
3.18299e-313 1 3.18299e-313 0
[End_of_Item]
34 229 16 152 75 75 44 156 191 100 1
35 35
30
1 1 0 1 0 0 1 1 1 0 1
@ -4768,7 +4879,7 @@ END_OF_DOCK_INFO
0
0
1
0 1 -1 -1 -1 -1 172 222 1066 713
0 1 -32088 -32000 -1 -1 147 402 1041 893
0
1
776 389
@ -4822,11 +4933,11 @@ End_Of_Object VGrMnBox 3
VDOLocalInfoStruct 3 Begin_Of_Object
3
1
203
218
VDAOBus 4 Begin_Of_Object
1
1
1
2
VDAOGBFunctionBlock 5 Begin_Of_Object
1
46
@ -4885,7 +4996,7 @@ EOF_ASSEMBLYDATA
<VFileName V4 QL> 1 "include\CAPL\ModbusClient.cbf"
VIPBStackSetting 8 Begin_Of_Object
3
0
1
1
VIPBAdapterSetting 9 Begin_Of_Object
4
@ -5298,7 +5409,142 @@ VSimulinkModelViewerConfiguration 7 Begin_Of_Object
End_Of_Object VSimulinkModelViewerConfiguration 7
1
0
1805777064
3569770309
0
NodeSignalPanelBustypeCount 0
End_Of_Object VSimulationNode 6
NULL
EndOfComment
0
1
End_Of_Object VDAOGBFunctionBlock 5
VDAOGBFunctionBlock 5 Begin_Of_Object
1
208
3
TABPredecessor:
41
TABSuccessor:
2
VSimulationNode 6 Begin_Of_Object
3
VProgrammedNode 7 Begin_Of_Object
4
VConfigurationRoot 8 Begin_Of_Object
1
End_Of_Object VConfigurationRoot 8
<VFileName V4 QL> 1 "include\CAPL\ModbusClient.can"
1
J:\HsKA\NB7\Bachelorthesis\CANoe\Modbus-CAPL\include\CAPL\ModbusClient2.cbf
Client_3
Modbus
5
ECU 1
ECU 1
EOF_TITLE_INFO
Client_3
1
0
1
1
0
1
0
1 0 2 0
SS_BEGIN_COMMON_INFO
1
5
Behavior
1
Buses
1
Misc
1
Modules
1
Timing
1
SS_END_COMMON_INFO
EOF_MBSSDATA
1
0 1
0
EOF_NLDATA
0
EOF_ASSEMBLYDATA
<VFileName V4 QL> 1 "include\CAPL\ModbusClient2.cbf"
VIPBStackSetting 8 Begin_Of_Object
3
1
1
VIPBAdapterSetting 9 Begin_Of_Object
4
1
9
02:48:F9:C4:13:00
End_Of_Serialized_Data 9
9
192.168.1.3
End_Of_Serialized_Data 9
9
255.255.255.0
End_Of_Serialized_Data 9
9
0.0.0.0
End_Of_Serialized_Data 9
1
VPersistentIFv4Address 10 Begin_Of_Object
1
VPersistentIFAddress 11 Begin_Of_Object
1
VPersistentAddress 12 Begin_Of_Object
1
End_Of_Object VPersistentAddress 12
End_Of_Object VPersistentIFAddress 11
10
192.168.1.3
End_Of_Serialized_Data 10
10
255.255.255.0
End_Of_Serialized_Data 10
End_Of_Object VPersistentIFv4Address 10
0
1
11
Ether1
1
0
0
End_Of_Object VIPBAdapterSetting 9
0
1
0
End_Of_Object VIPBStackSetting 8
7
NULL
End_Of_Serialized_Data 7
End_Of_Object VProgrammedNode 7
0
0
Startdelay 1 0 10
Jitter 0 0 1 0 0 0 0
1
1 ETHERNET_IL.DLL
EOF_NLDATA
3
VSimulinkModelViewerConfiguration 7 Begin_Of_Object
2
<VFileName V4 QL> 1 "include\CAPL\"
<VFileName V4 QL> 1 "include\CAPL\"
<VFileName V4 QL> 1 "include\CAPL\"
150
0
End_Of_Object VSimulinkModelViewerConfiguration 7
1
0
3569770309
0
NodeSignalPanelBustypeCount 0
End_Of_Object VSimulationNode 6
@ -5316,7 +5562,7 @@ VDAOGBFunctionBlock 5 Begin_Of_Object
TABPredecessor:
46
TABSuccessor:
2
208
VSSPlugInConfiguration 6 Begin_Of_Object
1
VConfigurationRoot 7 Begin_Of_Object
@ -5331,7 +5577,7 @@ VBoxRoot 9 Begin_Of_Object
1
3
1 1 1 1 0 166 -8 -30 61 86 1093 577
Ethernet Packet Builder
1
MDI_DOCK_INFO_END
@ -5409,11 +5655,105 @@ EOF_MBSSDATA
1
0 1
<IPPlugIn.PacketBuilder DefaultBusProtocolId="256" DefaultDestMacIdSelection="107" DefaultDestinationIPAddress="192 . 168 . 1 . 100" DefaultDestinationIPv6Address="0:0:0:0:0:0:0:0" DefaultDestinationMacId="FF:FF:FF:FF:FF:FF" DefaultDestinationPort="502" DefaultSourceIPAddress="192 . 168 . 1 . 10" DefaultSourceIPv6Address="0:0:0:0:0:0:0:0" DefaultSourceMacId="02:00:4C:4F:4F:50" DefaultSourcePort="2000" DefaultSrcMacIdSelection="1" Name="Ethernet Packet Builder">
<IPPlugIn.VPersistentFrameWrapper AssignedChannelId="Eth 1" DestMacIdConfStateSel="111" FrameDescription="MB/UDP" FrameIsValid="1" InitialPacketType="5" PDBData="5 0 1651797619 1 9 1 1651797619 1 5 1 1651797619 1 4 0 1651797619 1 11 0 1651797619 1 8 0 1651797619 1 3 0 1651797619 1 10 1 1651797619 1 3 1 1651797619 1 " RawFrameData=" 0-30-de- 7-9a-fd- 0-19-db-cb-83-dd- 8- 0-45- 0- 0-27- 0- 0- 0- 0-40-11-f7-72-c0-a8- 1- 1-c0-a8- 1- 2-d5-66- 1-f6- 0-13-67-b5-30-30- 0- 0- 0- 5-ff-2b- e- 1- 0- 0- 0- 2- 0- 0- 0- 6-" RawFrameLength="60" SrcMacIdConfStateSel="105" WlanAddr1MacIdConfStateSel="111" WlanAddr2MacIdConfStateSel="111" WlanAddr3MacIdConfStateSel="111" WlanAddr4MacIdConfStateSel="111"/>
<IPPlugIn.SE id="5" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="5" index="1" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="5" index="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="5" index="3" intVal="0" key="1702391908"/>
<IPPlugIn.VPersistentFrameWrapper AssignedChannelId="Eth 1" DestMacIdConfStateSel="111" FrameDescription="MB/UDP" FrameIsValid="1" InitialPacketType="5" PDBData="3 0 1651797619 1 3 1 1651797619 1 10 1 1651797619 1 8 0 1651797619 1 11 0 1651797619 1 4 0 1651797619 1 5 0 1651797619 1 5 1 1651797619 1 9 1 1651797619 1 " RawFrameData=" 0-30-de- 7-9a-fd- 0-19-db-cb-83-dd- 8- 0-45- 0- 0-27- 0- 0- 0- 0-40-11-f7-72-c0-a8- 1- 1-c0-a8- 1- 2-d5-66- 1-f6- 0-13-67-b5-30-30- 0- 0- 0- 5-ff-2b- e- 1- 0- 0- 0- 2- 0- 0- 0- 6-" RawFrameLength="60" SrcMacIdConfStateSel="105" WlanAddr1MacIdConfStateSel="111" WlanAddr2MacIdConfStateSel="111" WlanAddr3MacIdConfStateSel="111" WlanAddr4MacIdConfStateSel="111"/>
<IPPlugIn.SE id="102" intVal="0" key="1919247220"/>
<IPPlugIn.SE id="102" index="1" intVal="986" key="1919247220"/>
<IPPlugIn.SE id="102" index="2" intVal="0" key="1919247220"/>
<IPPlugIn.SE id="102" index="3" intVal="507" key="1919247220"/>
<IPPlugIn.SE id="102" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="102" intVal="199" key="1936292453"/>
<IPPlugIn.SE id="102" intVal="437" key="1920231791"/>
<IPPlugIn.SE id="1004" intVal="1145393987" key="1952540511"/>
<IPPlugIn.SE id="1004" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" intVal="218" key="2003072104"/>
<IPPlugIn.SE id="1004" index="1" intVal="1397708114" key="1952540511"/>
<IPPlugIn.SE id="1004" index="1" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="1" intVal="156" key="2003072104"/>
<IPPlugIn.SE id="1004" index="2" intVal="1145394004" key="1952540511"/>
<IPPlugIn.SE id="1004" index="2" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="2" intVal="156" key="2003072104"/>
<IPPlugIn.SE id="1004" index="3" intVal="1347571540" key="1952540511"/>
<IPPlugIn.SE id="1004" index="3" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1005" index="18" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="1005" index="19" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="20" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="1005" index="20" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="19" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="18" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1004" index="3" intVal="125" key="2003072104"/>
<IPPlugIn.SE id="1004" index="4" intVal="1397316165" key="1952540511"/>
<IPPlugIn.SE id="1004" index="4" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="4" intVal="108" key="2003072104"/>
<IPPlugIn.SE id="1004" index="5" intVal="1348029508" key="1952540511"/>
<IPPlugIn.SE id="1004" index="5" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="5" intVal="108" key="2003072104"/>
<IPPlugIn.SE id="1004" intVal="0" key="1886352249"/>
<IPPlugIn.SE id="1004" intVal="0" key="1886352248"/>
<IPPlugIn.SE id="1004" intVal="0" key="7499639"/>
<IPPlugIn.SE id="125" intVal="0" key="7562604"/>
<IPPlugIn.SE id="102" index="1" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="102" index="1" intVal="531" key="1936292453"/>
<IPPlugIn.SE id="102" index="1" intVal="397" key="1920231791"/>
<IPPlugIn.SE id="1005" intVal="0" key="1886352249"/>
<IPPlugIn.SE id="1005" intVal="0" key="1886352248"/>
<IPPlugIn.SE id="1005" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="1" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="1" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="2" index="1" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="2" index="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="2" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="2" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="3" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="3" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="4" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="4" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="5" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="5" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="6" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="6" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="7" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="7" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="8" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="8" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="9" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="9" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="3" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="1" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="3" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="4" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="5" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="6" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="7" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="8" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="9" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="10" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="11" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="10" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="10" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="11" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="11" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="1005" index="12" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="12" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="13" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="13" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="14" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="14" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="15" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="15" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="16" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="16" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="17" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="17" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="102" index="2" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="102" index="2" intVal="219" key="1936292453"/>
<IPPlugIn.SE id="102" index="2" intVal="164" key="1920231791"/>
<IPPlugIn.SE id="127" intVal="0" key="1651534958"/>
<IPPlugIn.SE id="1003" intVal="0" key="1886352249"/>
<IPPlugIn.SE id="1003" intVal="0" key="1886352248"/>
<IPPlugIn.SE id="1003" intVal="0" key="2003072104"/>
<IPPlugIn.SE id="4" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="4" index="1" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="4" index="2" intVal="0" key="1702391908"/>
@ -5424,104 +5764,10 @@ EOF_MBSSDATA
<IPPlugIn.SE id="4" index="7" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="4" index="8" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="4" index="9" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1003" intVal="0" key="2003072104"/>
<IPPlugIn.SE id="1003" intVal="0" key="1886352248"/>
<IPPlugIn.SE id="1003" intVal="0" key="1886352249"/>
<IPPlugIn.SE id="127" intVal="0" key="1651534958"/>
<IPPlugIn.SE id="3" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="1" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="102" index="2" intVal="164" key="1920231791"/>
<IPPlugIn.SE id="102" index="2" intVal="219" key="1936292453"/>
<IPPlugIn.SE id="102" index="2" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="3" index="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="3" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="4" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="5" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="6" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="7" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="8" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="9" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="10" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="11" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="1005" index="12" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="13" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="14" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="15" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="16" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="17" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="17" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="16" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="15" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="14" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="13" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="12" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="11" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="10" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="3" index="10" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="3" index="11" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="2" index="1" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="2" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="3" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="4" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="5" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="6" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="7" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="8" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="9" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="9" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" index="8" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="7" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="6" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="5" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="4" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="3" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="2" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="2" index="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="1005" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="1" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="1005" index="1" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" intVal="0" key="1886352248"/>
<IPPlugIn.SE id="1005" intVal="0" key="1886352249"/>
<IPPlugIn.SE id="125" intVal="0" key="7562604"/>
<IPPlugIn.SE id="102" index="1" intVal="397" key="1920231791"/>
<IPPlugIn.SE id="102" index="1" intVal="531" key="1936292453"/>
<IPPlugIn.SE id="102" index="1" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1004" intVal="0" key="7499639"/>
<IPPlugIn.SE id="1004" intVal="0" key="1886352248"/>
<IPPlugIn.SE id="1004" intVal="0" key="1886352249"/>
<IPPlugIn.SE id="1004" intVal="218" key="2003072104"/>
<IPPlugIn.SE id="1004" index="1" intVal="156" key="2003072104"/>
<IPPlugIn.SE id="1004" index="2" intVal="156" key="2003072104"/>
<IPPlugIn.SE id="1004" index="3" intVal="125" key="2003072104"/>
<IPPlugIn.SE id="1004" index="4" intVal="108" key="2003072104"/>
<IPPlugIn.SE id="1004" index="5" intVal="108" key="2003072104"/>
<IPPlugIn.SE id="1004" index="5" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="5" intVal="1348029508" key="1952540511"/>
<IPPlugIn.SE id="1004" index="4" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="4" intVal="1397316165" key="1952540511"/>
<IPPlugIn.SE id="1004" index="3" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="3" intVal="1347571540" key="1952540511"/>
<IPPlugIn.SE id="1004" index="2" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="2" intVal="1145394004" key="1952540511"/>
<IPPlugIn.SE id="1004" index="1" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" index="1" intVal="1397708114" key="1952540511"/>
<IPPlugIn.SE id="1004" intVal="1" key="1986622303"/>
<IPPlugIn.SE id="1004" intVal="1145393987" key="1952540511"/>
<IPPlugIn.SE id="102" intVal="437" key="1920231791"/>
<IPPlugIn.SE id="102" intVal="199" key="1936292453"/>
<IPPlugIn.SE id="102" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="102" intVal="0" key="1919247220"/>
<IPPlugIn.SE id="102" index="1" intVal="986" key="1919247220"/>
<IPPlugIn.SE id="102" index="2" intVal="0" key="1919247220"/>
<IPPlugIn.SE id="102" index="3" intVal="507" key="1919247220"/>
<IPPlugIn.SE id="1005" index="18" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="18" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="1005" index="19" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="19" intVal="0" key="1633907830"/>
<IPPlugIn.SE id="1005" index="20" intVal="1" key="1702391908"/>
<IPPlugIn.SE id="1005" index="20" intVal="1" key="1633907830"/>
<IPPlugIn.SE id="5" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="5" index="1" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="5" index="2" intVal="0" key="1702391908"/>
<IPPlugIn.SE id="5" index="3" intVal="0" key="1702391908"/>
</IPPlugIn.PacketBuilder>
End_Of_Object VSSPlugInConfiguration 6
NULL
@ -5539,7 +5785,7 @@ VDAOGBFunctionBlock 5 Begin_Of_Object
2
0
TABPredecessor:
41
208
TABSuccessor:
0
VCardConf 6 Begin_Of_Object
@ -5557,7 +5803,7 @@ NULL
End_Of_Object VDOLocalInfoStruct 3
0.000000
0 0
1 1 0 59420 1 176 1 2882400001 268 468 250 705 2882400002 0 0 0 0 0 20 1 2882400001 1146 1346 252 452 2882400002 0 0 0 0 0 0 3
1 1 0 59420 1 176 1 2882400001 243 443 430 885 2882400002 0 0 0 0 0 20 1 2882400001 1121 1321 432 632 2882400002 0 0 0 0 0 0 3
SS_BEGIN_COMMON_INFO
1
0
@ -5569,7 +5815,7 @@ Ether1
11
1
1
0 1 0 1 0 1 1 0 0 18 2000 1
0 1 0 1 0 1 1 0 0 0 2000 1
SS_BEGIN_COMMON_INFO
1
3
@ -5581,7 +5827,6 @@ Misc
1
SS_END_COMMON_INFO
EOF_BUSDATA
1
_Start_VPRBSManager 1
@ -5681,7 +5926,7 @@ End_Of_Serialized_Data 2
End_Of_Object VWriteBox 2
VWinStore 2 Begin_Of_Object
1
22 2 3 -1 -1 -1 -1 -10088 -10000 -9070 -9233
22 2 3 -32088 -32000 -1 -1 -10088 -10000 -9070 -9233
End_Of_Child_List
End_Of_Object VWinStore 2
VWinStore 2 Begin_Of_Object
@ -5972,14 +6217,14 @@ SymbSelHeaderMgrBegin
SymbSelHeaderMgrEnd
End
Begin
3 0 2
3 0 -1
3
Modbus
modbus
Systemvariablen
( 0 )
( 3 ( 0 ) 0 )
SymbSelHeaderMgrBegin
1 4
0 1 200 0 0
@ -6001,8 +6246,6 @@ End
FiltersEnd
1 1
END_OF_WORKSPACE_MEMBER_DATA
END_OF_WORKSPACE_MEMBER
1
@ -6123,7 +6366,7 @@ VIPBGlobalSettings 2 Begin_Of_Object
1
VIPBStackSetting 3 Begin_Of_Object
3
0
1
1
VIPBAdapterSetting 4 Begin_Of_Object
4

View file

@ -58,7 +58,7 @@ on preStart
strncpy(fnSysvar, "include/SysVars/generated.vsysvar", elCount(fnSysvar));
strncpy(fnDbc, "include/DBC/generated.dbc", elCount(fnDbc));
OutputDebugLevel = Info;
OutputDebugLevel = Mute;
}
on start
@ -201,35 +201,29 @@ void MakeIpNets()
void AnalyzeDevices()
{
// Init counters
ADn = 10; // expect 10 responses
ADn = 1; // expect 10 responses
ADi = 0; // First IP address
ADl = gIpsSorted.Size();
writeLineEx(0, 1, "Analyzing %s", gIpsSorted[ips[ADi]].Ip);
gIpsSorted[ips[ADi]].Vendor = Wago;
if (gRemoteIP != INVALID_IP) // If we already do have a socket
gRemoteIP = ips[ADi]; // use it
else // else create a new one
ModbusConnectTo(ips[ADi], @sysvar::Config::Modbus::Port);
// read the important registers from the device
ModbusReadRegisters(0x2011, 1); // Serial Code
ModbusReadRegisters(0x2012, 1); // Device Code
ModbusReadRegisters(0x1022, 1); // Number of AOs
ModbusReadRegisters(0x1023, 1); // Number of AIs
ModbusReadRegisters(0x1024, 1); // Number of DOs
ModbusReadRegisters(0x1025, 1); // Number of DIs
ModbusReadRegisters(0x2030, 65); // Connected IO 1
ModbusReadRegisters(0x2031, 64); // Connected IO 2
ModbusReadRegisters(0x2032, 64); // Connected IO 3
ModbusReadRegisters(0x2033, 63); // Connected IO 4
// request something special to get the vendor
// since there is no common register that holds the vendor
// we have to send a request that only one device responds correctly.
// At 0x1000-0x1002 B&R devices return the MAC address, whereas Wago holds the WatchdogTime.
// As the watchdog time only consists of 1 word Wago will return a IllegalDataAddress exception (0x02)
ModbusReadRegisters(0x1000, 3); // Request B&R MAC address
}
/// <Step3>
void AnalyzeDevicesNext()
{
gIpsSorted[ips[ADi]].DeviceIOs.Modules[strlen(gIpsSorted[ips[ADi]].DeviceIOs.Modules)-1] = 0;
if (strlen(gIpsSorted[ips[ADi]].DeviceIOs.Modules) > 0)
gIpsSorted[ips[ADi]].DeviceIOs.Modules[strlen(gIpsSorted[ips[ADi]].DeviceIOs.Modules)-1] = 0;
writeEx(0, 1, ": AOs: %d, AIs: %d, DOs: %d, DIs: %d --> %s", gIpsSorted[ips[ADi]].DeviceIOs.OutputRegisters, gIpsSorted[ips[ADi]].DeviceIOs.InputRegisters, gIpsSorted[ips[ADi]].DeviceIOs.OutputBits, gIpsSorted[ips[ADi]].DeviceIOs.InputBits, gIpsSorted[ips[ADi]].DeviceIOs.Modules);
if (++ADi >= ADl) // we have analyzed all devices
@ -238,35 +232,47 @@ void AnalyzeDevicesNext()
return;
}
ADn = 10; // expect 10 responses
ADn = 1; // expect 10 responses
gRemoteIP = ips[ADi]; // Next IP address
writeLineEx(0, 1, "Analyzing %s", gIpsSorted[ips[ADi]].Ip);
gIpsSorted[ips[ADi]].Vendor = Wago;
ModbusReadRegisters(0x2011, 1); // Serial Code
ModbusReadRegisters(0x2012, 1); // Device Code
ModbusReadRegisters(0x1022, 1); // Number of AOs
ModbusReadRegisters(0x1023, 1); // Number of AIs
ModbusReadRegisters(0x1024, 1); // Number of DOs
ModbusReadRegisters(0x1025, 1); // Number of DIs
ModbusReadRegisters(0x2030, 65); // Connected IO 1
ModbusReadRegisters(0x2031, 64); // Connected IO 2
ModbusReadRegisters(0x2032, 64); // Connected IO 3
ModbusReadRegisters(0x2033, 63); // Connected IO 4
// request something special to get the vendor
ModbusReadRegisters(0x1000, 3); // Request B&R MAC address
}
/// <Step3>
void OnModbusReadRegistersFailed(enum ModbusRequestError error, enum ModbusException ex, struct ModbusApHeader mbap)
{
struct ModbusReqRead mbreq;
switch (error)
{
case Timeout:
return;
case Exception:
memcpy_n2h(mbreq, gQueueAck[mbap.TxID].Buffer);
if (mbreq.Address == 0x1000 && ex == IllegalDataAddress) // We requested Wago SerialCode and it didn't work --> Not Wago --> B&R
{
gIpsSorted[ips[ADi]].Vendor = Wago;
// request information
ADn = 10;
ModbusReadRegisters(0x2011, 1); // Serial Code
ModbusReadRegisters(0x2012, 1); // Device Code
ModbusReadRegisters(0x1022, 1); // Number of AOs (= size in bits)
ModbusReadRegisters(0x1023, 1); // Number of AIs (= size in bits)
ModbusReadRegisters(0x1024, 1); // Number of DOs
ModbusReadRegisters(0x1025, 1); // Number of DIs
ModbusReadRegisters(0x2030, 65); // Connected IO 1
ModbusReadRegisters(0x2031, 64); // Connected IO 2
ModbusReadRegisters(0x2032, 64); // Connected IO 3
ModbusReadRegisters(0x2033, 63); // Connected IO 4
return;
}
writeLineEx(0, 3, "Error while analyzing %s! The device respond with exception code %d! Ignoring...", gIpsSorted[ips[ADi]].IP, ex);
break;
case FinalTimeout:
writeLineEx(0, 3, "Error while analyzing %s! The device did not respond! Ignoring...", gIpsSorted[ips[ADi]].IP);
break;
case Exception:
writeLineEx(0, 3, "Error while analyzing %s! The device respond with exception code %d! Ignoring...", gIpsSorted[ips[ADi]].IP, ex);
break;
}
gQueueAck.Clear(); // Clear all queues
gQueuePending.Clear();
@ -274,42 +280,83 @@ void OnModbusReadRegistersFailed(enum ModbusRequestError error, enum ModbusExcep
gIpsSorted.Remove(ips[ADi]); // Remove the IP
AnalyzeDevicesNext(); // And go to the next device
}
/// <Step3>
void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbres, struct ModbusReqRead mbreq)
{
byte i;
// Parse the received data
switch (mbreq.Address)
if (mbreq.Address == 0x1000) // We detected a B&R device
{
case 0x2011:
gIpsSorted[ips[ADi]].serialCode = mbres.Data[0];
break;
case 0x2012:
gIpsSorted[ips[ADi]].deviceCode = mbres.Data[0];
break;
case 0x1022:
gIpsSorted[ips[ADi]].DeviceIOs.OutputRegisters = mbres.Data[0] / 16;
break;
case 0x1023:
gIpsSorted[ips[ADi]].DeviceIOs.InputRegisters = mbres.Data[0] / 16;
break;
case 0x1024:
gIpsSorted[ips[ADi]].DeviceIOs.OutputBits = mbres.Data[0];
break;
case 0x1025:
gIpsSorted[ips[ADi]].DeviceIOs.InputBits = mbres.Data[0];
break;
case 0x2030:
case 0x2031:
case 0x2032:
case 0x2033:
for (i = 0; i < mbreq.Count; i++)
gIpsSorted[ips[ADi]].Vendor = BuR;
// request further information
ADn = 5;
ModbusReadRegisters(0x1083, 1); // Product Code
ModbusReadRegisters(0x1101, 1); // Number of AIs
ModbusReadRegisters(0x1103, 1); // Number of AOs
ModbusReadRegisters(0x1105, 1); // Number of DIs
ModbusReadRegisters(0x1107, 1); // Number of DOs
return;
}
switch (gIpsSorted[ips[ADi]].Vendor)
{
case Wago:
// Parse the received data
switch (mbreq.Address)
{
if (mbres.Data[i] == 0x0000) // No more devices --> end
case 0x2011:
gIpsSorted[ips[ADi]].serialCode = mbres.Data[0];
break;
case 0x2012:
gIpsSorted[ips[ADi]].deviceCode = mbres.Data[0];
break;
case 0x1022:
gIpsSorted[ips[ADi]].DeviceIOs.OutputRegisters = mbres.Data[0] / 16;
break;
case 0x1023:
gIpsSorted[ips[ADi]].DeviceIOs.InputRegisters = mbres.Data[0] / 16;
break;
case 0x1024:
gIpsSorted[ips[ADi]].DeviceIOs.OutputBits = mbres.Data[0];
break;
case 0x1025:
gIpsSorted[ips[ADi]].DeviceIOs.InputBits = mbres.Data[0];
break;
case 0x2030:
case 0x2031:
case 0x2032:
case 0x2033:
for (i = 0; i < mbreq.Count; i++)
{
if (mbres.Data[i] == 0x0000) // No more devices --> end
break;
ParseDeviceCode(mbres.Data[i], gIpsSorted[ips[ADi]].Vendor, gIpsSorted[ips[ADi]].DeviceIOs);
}
break;
}
break;
case BuR:
// Parse the received data
switch (mbreq.Address)
{
case 0x1083:
gIpsSorted[ips[ADi]].serialCode = mbres.Data[0];
break;
case 0x1101:
gIpsSorted[ips[ADi]].DeviceIOs.InputRegisters = mbres.Data[0] - 3; // X20BC0087 has 3 AIs when no module is connected... hö?
break;
case 0x1103:
gIpsSorted[ips[ADi]].DeviceIOs.OutputRegisters = mbres.Data[0];
break;
case 0x1105:
gIpsSorted[ips[ADi]].DeviceIOs.InputBits = mbres.Data[0] * 8; // Unfortunately this is quite imprecise:
// in the process image one module will always fill a whole number of bytes.
// So 4 12DI modules not allocate not 4*12 bit = 6 byte, but 4*16 bit = 64 bit = 8 byte
break;
case 0x1107:
gIpsSorted[ips[ADi]].DeviceIOs.OutputBits = mbres.Data[0] * 8;
break;
ParseDeviceCode(mbres.Data[i], gIpsSorted[ips[ADi]].Vendor, gIpsSorted[ips[ADi]].DeviceIOs);
}
break;
}
@ -415,19 +462,75 @@ void GenSysvars()
// InputRegisters
PutString(" <variable anlyzLocal=\"2\" readOnly=\"true\" valueSequence=\"false\" unit=\"\" name=\"InputRegisters\" comment=\"Number of input registers\" bitcount=\"32\" isSigned=\"true\" encoding=\"65001\" type=\"int\" startValue=\"");
PutString(gIpsSorted[ipN].DeviceIOs.InputRegisters);
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"123\" maxValuePhys=\"123\" />\n");
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"");
if (gIpsSorted[ipN].Vendor == Wago)
{
PutString((word)123);
PutString("\" maxValuePhys=\"");
PutString((word)123);
PutString("\" />\n");
}
else
{
PutString((word)2048);
PutString("\" maxValuePhys=\"");
PutString((word)2048);
PutString("\" />\n");
}
// InputBits
PutString(" <variable anlyzLocal=\"2\" readOnly=\"true\" valueSequence=\"false\" unit=\"\" name=\"InputBits\" comment=\"Number of input bits\" bitcount=\"32\" isSigned=\"true\" encoding=\"65001\" type=\"int\" startValue=\"");
PutString(gIpsSorted[ipN].DeviceIOs.InputBits);
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"2000\" maxValuePhys=\"2000\" />\n");
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"");
if (gIpsSorted[ipN].Vendor == Wago)
{
PutString((word)2000);
PutString("\" maxValuePhys=\"");
PutString((word)2000);
PutString("\" />\n");
}
else
{
PutString((word)16384);
PutString("\" maxValuePhys=\"");
PutString((word)16384);
PutString("\" />\n");
}
// OutputRegisters
PutString(" <variable anlyzLocal=\"2\" readOnly=\"true\" valueSequence=\"false\" unit=\"\" name=\"OutputRegisters\" comment=\"Number of output registers\" bitcount=\"32\" isSigned=\"true\" encoding=\"65001\" type=\"int\" startValue=\"");
PutString(gIpsSorted[ipN].DeviceIOs.OutputRegisters);
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"123\" maxValuePhys=\"123\" />\n");
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"");
if (gIpsSorted[ipN].Vendor == Wago)
{
PutString((word)123);
PutString("\" maxValuePhys=\"");
PutString((word)123);
PutString("\" />\n");
}
else
{
PutString((word)2048);
PutString("\" maxValuePhys=\"");
PutString((word)2048);
PutString("\" />\n");
}
// OutputBits
PutString(" <variable anlyzLocal=\"2\" readOnly=\"true\" valueSequence=\"false\" unit=\"\" name=\"OutputBits\" comment=\"Number of output bits\" bitcount=\"32\" isSigned=\"true\" encoding=\"65001\" type=\"int\" startValue=\"");
PutString(gIpsSorted[ipN].DeviceIOs.OutputBits);
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"2000\" maxValuePhys=\"2000\" />\n");
PutString("\" minValue=\"0\" minValuePhys=\"0\" maxValue=\"");
if (gIpsSorted[ipN].Vendor == Wago)
{
PutString((word)2000);
PutString("\" maxValuePhys=\"");
PutString((word)2000);
PutString("\" />\n");
}
else
{
PutString((word)16384);
PutString("\" maxValuePhys=\"");
PutString((word)16384);
PutString("\" />\n");
}
PutString(" </namespace>\n");
// Namespace Data

View file

@ -21,12 +21,40 @@ on preStart
on start
{
word outputBits, outputRegs, outputBitAddr, outputRegAddr;
outputBits = @sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::OutputBits;
outputRegs = @sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::OutputRegisters;
switch ((enum Vendor)@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::Vendor)
{
case Wago:
outputBitAddr = 0x200;
outputRegAddr = 0x200;
break;
case BuR:
outputBitAddr = 0x000;
outputRegAddr = 0x800;
break;
}
ModbusInit();
if (@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::OutputBits > 0)
ModbusReadBits(0x200, @sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::OutputBits);
if (@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::OutputRegisters > 0)
ModbusReadRegisters(0x200, @sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::OutputRegisters);
while (outputBits > 0)
{
ModbusReadOutBits(outputBitAddr, 2000);
outputBits -= 2000;
}
if (outputBits > 0)
ModbusReadOutBits(outputBitAddr, outputBits);
while (outputRegs > 0)
{
ModbusReadRegisters(outputRegAddr, 123);
outputRegs -= 123;
}
if (outputRegs > 0)
ModbusReadRegisters(outputRegAddr, outputRegs);
setTimerCyclic(gtRead, 1, @sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Config::Interval);
}
@ -126,7 +154,7 @@ void OnModbusReadRegistersSuccess(struct ModbusResReceiveRegisters mbres, struct
@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Data::OutputRegisters[i] = mbres.Data[i];
sysEndVariableStructUpdate("%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Data", "OutputRegisters");
break;
case 0x000: // set output registers
case 0x000: // set input registers
sysBeginVariableStructUpdate("%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Data", "InputRegisters");
for (i = 0; i < @sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Info::InputRegisters; i++)
@sysvar::%BUS_TYPE%%CHANNEL%::%NODE_NAME%::Data::InputRegisters[i] = mbres.Data[i];

View file

@ -21,7 +21,9 @@ variables
Error = 0x30,
AlgoError = 0x32,
ConnError = 0x34,
MbError = 0x37
MbError = 0x37,
Mute = 0xFF
};
char DebugLvlStr[4][8] = {"Debug", "Info", "Warning", "Error"};
enum DebugLvl OutputDebugLevel = Debug;

View file

@ -60,10 +60,24 @@ void ModbusMakeHeader(struct ModbusApHeader mbap, word length)
// REGION: ModbusReadBits -------------------------------------------------------------
/// <ModbusReadBits>
void ModbusReadInBits(word address, word count)
{
ModbusReadBits(0x02, address, count);
}
/// <ModbusReadBits>
void ModbusReadBits(word address, word count)
{
ModbusReadBits(0x02, address, count);
}
/// <ModbusReadBits>
void ModbusReadOutBits(word address, word count)
{
ModbusReadBits(0x01, address, count);
}
/// <ModbusReadBits>
void ModbusReadBits(byte funcCode, word address, word count)
{
const byte length = __size_of(struct ModbusReqRead);
const byte funcCode = 0x01;
byte buffer[length];
struct ModbusReqRead mbr;
@ -166,7 +180,7 @@ void OnModbusReceiveRegistersException(struct ModbusApHeader mbap, enum ModbusEx
void ModbusWriteBit(word address, byte value)
{
const byte length = __size_of(struct ModbusReqWriteSingle);
const byte funcCode = 0x05;
const byte funcCode = 0x05; // B&R does not support 0x06
byte buffer[length];
struct ModbusReqWriteSingle mbw;

View file

@ -1,12 +1,6 @@
/*@!Encoding:1252*/
variables
{
enum Vendor
{
BuR = 2,
Wago = 23
};
struct deviceIOs
{
byte InputRegisters;

View file

@ -143,4 +143,9 @@ variables
VendorIdUnknown = 0x03,
ConnectionError = 0x04
};
enum Vendor
{
Wago = 23,
BuR = 2
};
}

View file

@ -33,7 +33,7 @@ NS_ :
BS_:
BU_: Client_2
BU_: Client_2 Client_3

View file

@ -39,6 +39,33 @@
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="OutputBits" comment="The state of the output bits. Write here and the values will be sent to the device" bitcount="2" isSigned="true" encoding="65001" type="intarray" arrayLength="16" />
</namespace>
</namespace>
<namespace name="Client_3" comment="Server with ip address '192.168.1.3'">
<namespace name="Config" comment="Configuration section for this server">
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="IP" comment="The IP address of this server" bitcount="8" isSigned="true" encoding="65001" type="string" startValue="192.168.1.3" />
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="ms" name="Interval" comment="The interval with which the device will be queried" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="100" minValue="10" minValuePhys="10" maxValue="10000" maxValuePhys="10000" />
</namespace>
<namespace name="Info" comment="Some information about the device">
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="Vendor" comment="The vendor of the device" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="2">
<valuetable definesMinMax="true">
<valuetableentry value="2" description="BuR" />
<valuetableentry value="23" description="Wago" />
</valuetable>
</variable>
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="SerialCode" comment="The serial code of the server" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="8828" minValue="1" minValuePhys="1" maxValue="10000" maxValuePhys="10000" />
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="DeviceCode" comment="The device code of the server" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="0" minValue="1" minValuePhys="1" maxValue="10000" maxValuePhys="10000" />
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="Modules" comment="The type and number of inputs of modules that are connected to the server" bitcount="8" isSigned="true" encoding="65001" type="string" startValue="" />
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="InputRegisters" comment="Number of input registers" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="4" minValue="0" minValuePhys="0" maxValue="2048" maxValuePhys="2048" />
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="InputBits" comment="Number of input bits" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="64" minValue="0" minValuePhys="0" maxValue="16384" maxValuePhys="16384" />
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="OutputRegisters" comment="Number of output registers" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="0" minValue="0" minValuePhys="0" maxValue="2048" maxValuePhys="2048" />
<variable anlyzLocal="2" readOnly="true" valueSequence="false" unit="" name="OutputBits" comment="Number of output bits" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="0" minValue="0" minValuePhys="0" maxValue="16384" maxValuePhys="16384" />
</namespace>
<namespace name="Data" comment="The actual process image">
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="InputRegisters" comment="The values of the input registers" bitcount="9" isSigned="true" encoding="65001" type="intarray" arrayLength="4" />
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="InputBits" comment="The state of the input bits" bitcount="2" isSigned="true" encoding="65001" type="intarray" arrayLength="64" />
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="OutputRegisters" comment="The values of the output registers. Write here and the values will be sent to the device" bitcount="9" isSigned="true" encoding="65001" type="intarray" arrayLength="0" />
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="OutputBits" comment="The state of the output bits. Write here and the values will be sent to the device" bitcount="2" isSigned="true" encoding="65001" type="intarray" arrayLength="0" />
</namespace>
</namespace>
</namespace>
</namespace>
</systemvariables>