Updated Object dictionary for data reading

This commit is contained in:
VineetaGupta 2025-04-25 16:53:21 +02:00
parent db38c17a5e
commit 77d8b4f997
16 changed files with 2336 additions and 174 deletions

View File

@ -6,9 +6,28 @@ Index,Sub,EDSname,Datatype,Access,Value,varname,LowLimit,UpLimit,hasDefault,hasL
0x1008,0x00,Manufacturer device name,VISIBLE_STRING,const,emotas Slave 1,NONE,0,0,yes,no,no,no,1,ManagedConst,14,,no 0x1008,0x00,Manufacturer device name,VISIBLE_STRING,const,emotas Slave 1,NONE,0,0,yes,no,no,no,1,ManagedConst,14,,no
0x1014,0x00,COB ID EMCY,UNSIGNED32,ro,$NODEID+0x80,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no 0x1014,0x00,COB ID EMCY,UNSIGNED32,ro,$NODEID+0x80,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1015,0x00,Inhibit Time Emergency,UNSIGNED16,rw,0,NONE,0,65535,yes,no,no,no,1,ManagedVariable,0,,no 0x1015,0x00,Inhibit Time Emergency,UNSIGNED16,rw,0,NONE,0,65535,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x00,Consumer Heartbeat Time Number of entries,UNSIGNED8,ro,1,NONE,0,255,yes,no,no,no,1,ManagedConst,0,ARRAY,no 0x1016,0x00,Consumer Heartbeat Time Number of entries,UNSIGNED8,ro,20,NONE,0,255,yes,no,no,no,1,ManagedConst,0,ARRAY,no
0x1016,0x01,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,0,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no 0x1016,0x01,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1017,0x00,Producer Heartbeat Time,UNSIGNED16,rw,1500,NONE,0,65535,no,no,no,no,0,ManagedVariable,0,,no 0x1016,0x02,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x03,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x04,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x05,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x06,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x07,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x08,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x09,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x0a,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x0b,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x0c,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x0d,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x0e,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x0f,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x10,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x11,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x12,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x13,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1016,0x14,Consumer Heartbeat Time Consumer Heartbeat Time,UNSIGNED32,rw,500,NONE,0,4294967295,yes,no,no,no,1,ManagedVariable,0,,no
0x1017,0x00,Producer Heartbeat Time,UNSIGNED16,rw,100,NONE,0,65535,no,no,no,no,0,ManagedVariable,0,,no
0x1018,0x00,Identity Object Number of entries,UNSIGNED8,ro,4,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no 0x1018,0x00,Identity Object Number of entries,UNSIGNED8,ro,4,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no
0x1018,0x01,Identity Object Vendor Id,UNSIGNED32,ro,793,NONE,0,4294967295,yes,no,no,no,1,ManagedConst,0,,no 0x1018,0x01,Identity Object Vendor Id,UNSIGNED32,ro,793,NONE,0,4294967295,yes,no,no,no,1,ManagedConst,0,,no
0x1018,0x02,Identity Object Product Code,UNSIGNED32,ro,1234,NONE,0,4294967295,yes,no,no,no,1,ManagedConst,0,,no 0x1018,0x02,Identity Object Product Code,UNSIGNED32,ro,1234,NONE,0,4294967295,yes,no,no,no,1,ManagedConst,0,,no
@ -153,6 +172,27 @@ Index,Sub,EDSname,Datatype,Access,Value,varname,LowLimit,UpLimit,hasDefault,hasL
0x1804,0x04,TPDO communication parameter Inhibit time,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no 0x1804,0x04,TPDO communication parameter Inhibit time,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1804,0x05,TPDO communication parameter Event timer,UNSIGNED16,rw,500,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no 0x1804,0x05,TPDO communication parameter Event timer,UNSIGNED16,rw,500,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no
0x1804,0x06,TPDO communication parameter SYNC start value,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no 0x1804,0x06,TPDO communication parameter SYNC start value,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1805,0x00,TPDO communication parameter Highest sub-index supported,UNSIGNED8,const,6,NONE,2,6,yes,no,no,no,1,ManagedConst,0,RECORD,both
0x1805,0x01,TPDO communication parameter COB-ID used by TPDO,UNSIGNED32,rw,$NODEID+0x180+2,NONE,128,4294967295,yes,no,no,no,2,ManagedVariable,0,,tpdo
0x1805,0x02,TPDO communication parameter Transmission type,UNSIGNED8,rw,254,NONE,0,255,yes,no,no,no,0,ManagedVariable,0,,no
0x1805,0x03,TPDO communication parameter Inhibit time,UNSIGNED16,rw,,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no
0x1805,0x04,TPDO communication parameter Inhibit time,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1805,0x05,TPDO communication parameter Event timer,UNSIGNED16,rw,500,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no
0x1805,0x06,TPDO communication parameter SYNC start value,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1806,0x00,TPDO communication parameter Highest sub-index supported,UNSIGNED8,const,6,NONE,2,6,yes,no,no,no,1,ManagedConst,0,RECORD,both
0x1806,0x01,TPDO communication parameter COB-ID used by TPDO,UNSIGNED32,rw,$NODEID+0x180+3,NONE,128,4294967295,yes,no,no,no,2,ManagedVariable,0,,tpdo
0x1806,0x02,TPDO communication parameter Transmission type,UNSIGNED8,rw,254,NONE,0,255,yes,no,no,no,0,ManagedVariable,0,,no
0x1806,0x03,TPDO communication parameter Inhibit time,UNSIGNED16,rw,,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no
0x1806,0x04,TPDO communication parameter Inhibit time,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1806,0x05,TPDO communication parameter Event timer,UNSIGNED16,rw,500,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no
0x1806,0x06,TPDO communication parameter SYNC start value,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1807,0x00,TPDO communication parameter Highest sub-index supported,UNSIGNED8,const,6,NONE,2,6,yes,no,no,no,1,ManagedConst,0,RECORD,both
0x1807,0x01,TPDO communication parameter COB-ID used by TPDO,UNSIGNED32,rw,$NODEID+0x180+4,NONE,128,4294967295,yes,no,no,no,2,ManagedVariable,0,,tpdo
0x1807,0x02,TPDO communication parameter Transmission type,UNSIGNED8,rw,254,NONE,0,255,yes,no,no,no,0,ManagedVariable,0,,no
0x1807,0x03,TPDO communication parameter Inhibit time,UNSIGNED16,rw,,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no
0x1807,0x04,TPDO communication parameter Inhibit time,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1807,0x05,TPDO communication parameter Event timer,UNSIGNED16,rw,500,NONE,0,0xffff,yes,no,no,no,0,ManagedVariable,0,,no
0x1807,0x06,TPDO communication parameter SYNC start value,UNSIGNED8,rw,,NONE,0,0xff,yes,no,no,no,0,ManagedVariable,0,,no
0x1a00,0x00,Conductivity Data OUT1 Number of entries,UNSIGNED8,const,2,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no 0x1a00,0x00,Conductivity Data OUT1 Number of entries,UNSIGNED8,const,2,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no
0x1a00,0x01,Conductivity Data OUT1 Mapping Entry 1,UNSIGNED32,const,1610744096,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo 0x1a00,0x01,Conductivity Data OUT1 Mapping Entry 1,UNSIGNED32,const,1610744096,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo
0x1a00,0x02,Conductivity Data OUT1 Mapping Entry 2,UNSIGNED32,const,1610744352,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo 0x1a00,0x02,Conductivity Data OUT1 Mapping Entry 2,UNSIGNED32,const,1610744352,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo
@ -166,8 +206,16 @@ Index,Sub,EDSname,Datatype,Access,Value,varname,LowLimit,UpLimit,hasDefault,hasL
0x1a03,0x01, Pressue and Flowmeter Data OUT1 Mapping Entry 1,UNSIGNED32,const,1610875168,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo 0x1a03,0x01, Pressue and Flowmeter Data OUT1 Mapping Entry 1,UNSIGNED32,const,1610875168,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo
0x1a03,0x02, Pressue and Flowmeter Data OUT1 Mapping Entry 2,UNSIGNED32,const,1610940704,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo 0x1a03,0x02, Pressue and Flowmeter Data OUT1 Mapping Entry 2,UNSIGNED32,const,1610940704,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo
0x1a04,0x00, Pressue and Flowmeter Data OUT2 Number of entries,UNSIGNED8,const,2,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no 0x1a04,0x00, Pressue and Flowmeter Data OUT2 Number of entries,UNSIGNED8,const,2,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no
0x1a04,0x01, Pressue and Flowmeter Data OUT2 Mapping Entry 1,UNSIGNED32,const,1610679072,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo 0x1a04,0x01, Pressue and Flowmeter Data OUT2 Mapping Entry 1,UNSIGNED32,const,1610875424,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,no
0x1a04,0x02, Pressue and Flowmeter Data OUT2 Mapping Entry 2,UNSIGNED32,const,1610679328,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,tpdo 0x1a04,0x02, Pressue and Flowmeter Data OUT2 Mapping Entry 2,UNSIGNED32,const,1610940960,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,no
0x1a05,0x00, Pressue and Flowmeter Data OUT3 Number of entries,UNSIGNED8,const,2,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no
0x1a05,0x01, Pressue and Flowmeter Data OUT3 Mapping Entry 1,UNSIGNED32,const,1610875680,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,no
0x1a05,0x02, Pressue and Flowmeter Data OUT3 Mapping Entry 2,UNSIGNED32,const,1610941216,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,no
0x1a06,0x00, Pressue and Flowmeter Data OUT4 Number of entries,UNSIGNED8,const,2,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no
0x1a06,0x01, Pressue and Flowmeter Data OUT4 Mapping Entry 1,UNSIGNED32,const,1610875936,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,no
0x1a06,0x02, Pressue and Flowmeter Data OUT4 Mapping Entry 2,UNSIGNED32,const,1610941472,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,no
0x1a07,0x00,Pump Data OUT Number of entries,UNSIGNED8,const,1,NONE,0,255,yes,no,no,no,1,ManagedConst,0,RECORD,no
0x1a07,0x01,Pump Data OUT Mapping Entry 1,UNSIGNED32,const,1611005984,NONE,0,0,yes,no,no,no,1,ManagedConst,0,,no
0x2001,0x00,Manufacturer Object,INTEGER32,rw,4,NONE,0,0,no,no,no,no,0,ManagedVariable,0,,both 0x2001,0x00,Manufacturer Object,INTEGER32,rw,4,NONE,0,0,no,no,no,no,0,ManagedVariable,0,,both
0x3000,0x00,Managed Array NUmber of Entries,UNSIGNED8,ro,2,NONE,0,0,yes,no,no,no,1,ManagedConst,0,ARRAY,no 0x3000,0x00,Managed Array NUmber of Entries,UNSIGNED8,ro,2,NONE,0,0,yes,no,no,no,1,ManagedConst,0,ARRAY,no
@ -213,3 +261,4 @@ Index,Sub,EDSname,Datatype,Access,Value,varname,LowLimit,UpLimit,hasDefault,hasL
0x6005,0x02,Pressure Sensor Data OUT PS2 OUT,REAL32,rw,,NONE,,,yes,no,no,no,1,ManagedVariable,0,,both 0x6005,0x02,Pressure Sensor Data OUT PS2 OUT,REAL32,rw,,NONE,,,yes,no,no,no,1,ManagedVariable,0,,both
0x6005,0x03,Pressure Sensor Data OUT PS3 OUT,REAL32,rw,,NONE,,,yes,no,no,no,1,ManagedVariable,0,,both 0x6005,0x03,Pressure Sensor Data OUT PS3 OUT,REAL32,rw,,NONE,,,yes,no,no,no,1,ManagedVariable,0,,both
0x6005,0x04,Pressure Sensor Data OUT PS4 OUT,REAL32,rw,,NONE,,,yes,no,no,no,1,ManagedVariable,0,,both 0x6005,0x04,Pressure Sensor Data OUT PS4 OUT,REAL32,rw,,NONE,,,yes,no,no,no,1,ManagedVariable,0,,both
0x6006,0x00,Pump Data OUT,UNSIGNED32,rw,,NONE,0,0xffffffff,yes,no,no,no,1,ManagedVariable,0,,tpdo

Can't render this file because it has a wrong number of fields in line 219.

View File

@ -5,10 +5,10 @@ FileVersion=1.0
FileRevision=1.0 FileRevision=1.0
EDSVersion=4.0 EDSVersion=4.0
Description=EDS Description=EDS
CreationTime=14:59PM CreationTime=13:57PM
CreationDate=02-25-25 CreationDate=04-25-25
ModificationTime=14:59PM ModificationTime=13:57PM
ModificationDate=02-25-25 ModificationDate=04-25-25
CreatedBy=Aniket Saha CreatedBy=Aniket Saha
ModifiedBy=Aniket Saha ModifiedBy=Aniket Saha
@ -32,7 +32,7 @@ BaudRate_500=0
BaudRate_800=0 BaudRate_800=0
BaudRate_1000=0 BaudRate_1000=0
NrOfRxPDO=3 NrOfRxPDO=3
NrOfTxPDO=5 NrOfTxPDO=8
SimpleBootupSlave=1 SimpleBootupSlave=1
SimpleBootupMaster=0 SimpleBootupMaster=0
LSS_Supported=0 LSS_Supported=0
@ -61,7 +61,7 @@ SupportedObjects=2
2=0x3000 2=0x3000
[OptionalObjects] [OptionalObjects]
SupportedObjects=51 SupportedObjects=58
1=0x1003 1=0x1003
2=0x1008 2=0x1008
3=0x1014 3=0x1014
@ -102,17 +102,24 @@ SupportedObjects=51
38=0x1802 38=0x1802
39=0x1803 39=0x1803
40=0x1804 40=0x1804
41=0x1a00 41=0x1805
42=0x1a01 42=0x1806
43=0x1a02 43=0x1807
44=0x1a03 44=0x1a00
45=0x1a04 45=0x1a01
46=0x6000 46=0x1a02
47=0x6001 47=0x1a03
48=0x6002 48=0x1a04
49=0x6003 49=0x1a05
50=0x6004 50=0x1a06
51=0x6005 51=0x1a07
52=0x6000
53=0x6001
54=0x6002
55=0x6003
56=0x6004
57=0x6005
58=0x6006
[1000] [1000]
ParameterName=Device Type ParameterName=Device Type
@ -1672,6 +1679,174 @@ DataType=5
AccessType=rw AccessType=rw
PDOMapping=0 PDOMapping=0
[1805]
ParameterName=TPDO communication parameter
ObjectType=9
SubNumber=7
[1805sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=1
DefaultValue=6
[1805sub1]
ParameterName=COB-ID used by TPDO
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=1
DefaultValue=$NODEID+0x180+2
[1805sub2]
ParameterName=Transmission type
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1805sub3]
ParameterName=Inhibit time
ObjectType=7
DataType=6
AccessType=rw
PDOMapping=0
[1805sub4]
ParameterName=Inhibit time
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1805sub5]
ParameterName=Event timer
ObjectType=7
DataType=6
AccessType=rw
PDOMapping=0
[1805sub6]
ParameterName=SYNC start value
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1806]
ParameterName=TPDO communication parameter
ObjectType=9
SubNumber=7
[1806sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=1
DefaultValue=6
[1806sub1]
ParameterName=COB-ID used by TPDO
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=1
DefaultValue=$NODEID+0x180+3
[1806sub2]
ParameterName=Transmission type
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1806sub3]
ParameterName=Inhibit time
ObjectType=7
DataType=6
AccessType=rw
PDOMapping=0
[1806sub4]
ParameterName=Inhibit time
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1806sub5]
ParameterName=Event timer
ObjectType=7
DataType=6
AccessType=rw
PDOMapping=0
[1806sub6]
ParameterName=SYNC start value
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1807]
ParameterName=TPDO communication parameter
ObjectType=9
SubNumber=7
[1807sub0]
ParameterName=Highest sub-index supported
ObjectType=7
DataType=5
AccessType=const
PDOMapping=1
DefaultValue=6
[1807sub1]
ParameterName=COB-ID used by TPDO
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=1
DefaultValue=$NODEID+0x180+4
[1807sub2]
ParameterName=Transmission type
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1807sub3]
ParameterName=Inhibit time
ObjectType=7
DataType=6
AccessType=rw
PDOMapping=0
[1807sub4]
ParameterName=Inhibit time
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1807sub5]
ParameterName=Event timer
ObjectType=7
DataType=6
AccessType=rw
PDOMapping=0
[1807sub6]
ParameterName=SYNC start value
ObjectType=7
DataType=5
AccessType=rw
PDOMapping=0
[1a00] [1a00]
ParameterName=Conductivity Data OUT1 ParameterName=Conductivity Data OUT1
ObjectType=9 ObjectType=9
@ -1806,16 +1981,95 @@ ParameterName=Mapping Entry 1
ObjectType=7 ObjectType=7
DataType=7 DataType=7
AccessType=const AccessType=const
PDOMapping=1 PDOMapping=0
DefaultValue=0x60010320 DefaultValue=0x60040220
[1a04sub2] [1a04sub2]
ParameterName=Mapping Entry 2 ParameterName=Mapping Entry 2
ObjectType=7 ObjectType=7
DataType=7 DataType=7
AccessType=const AccessType=const
PDOMapping=1 PDOMapping=0
DefaultValue=0x60010420 DefaultValue=0x60050220
[1a05]
ParameterName= Pressue and Flowmeter Data OUT3
ObjectType=9
SubNumber=3
[1a05sub0]
ParameterName=Number of entries
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=2
[1a05sub1]
ParameterName=Mapping Entry 1
ObjectType=7
DataType=7
AccessType=const
PDOMapping=0
DefaultValue=0x60040320
[1a05sub2]
ParameterName=Mapping Entry 2
ObjectType=7
DataType=7
AccessType=const
PDOMapping=0
DefaultValue=0x60050320
[1a06]
ParameterName= Pressue and Flowmeter Data OUT4
ObjectType=9
SubNumber=3
[1a06sub0]
ParameterName=Number of entries
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=2
[1a06sub1]
ParameterName=Mapping Entry 1
ObjectType=7
DataType=7
AccessType=const
PDOMapping=0
DefaultValue=0x60040420
[1a06sub2]
ParameterName=Mapping Entry 2
ObjectType=7
DataType=7
AccessType=const
PDOMapping=0
DefaultValue=0x60050420
[1a07]
ParameterName=Pump Data OUT
ObjectType=9
SubNumber=2
[1a07sub0]
ParameterName=Number of entries
ObjectType=7
DataType=5
AccessType=const
PDOMapping=0
DefaultValue=1
[1a07sub1]
ParameterName=Mapping Entry 1
ObjectType=7
DataType=7
AccessType=const
PDOMapping=0
DefaultValue=0x60060020
[2001] [2001]
ParameterName=Manufacturer Object ParameterName=Manufacturer Object
@ -2160,3 +2414,10 @@ DataType=8
AccessType=rw AccessType=rw
PDOMapping=1 PDOMapping=1
[6006]
ParameterName=Pump Data OUT
ObjectType=7
DataType=7
AccessType=rw
PDOMapping=1

File diff suppressed because it is too large Load Diff

View File

@ -17,10 +17,29 @@ index,sub,objectcode,datatype,edsname,varname,access,mapable,hasdefault,defaulti
0x1015,0x00,VARIABLE,UNSIGNED16,Inhibit Time Emergency,,rw,no,1,1,0,,0,ManagedVariable,no,0,65535,no 0x1015,0x00,VARIABLE,UNSIGNED16,Inhibit Time Emergency,,rw,no,1,1,0,,0,ManagedVariable,no,0,65535,no
0x1016,,ARRAY,UNSIGNED32,Consumer Heartbeat Time,,,,,,,,,,,,,, 0x1016,,ARRAY,UNSIGNED32,Consumer Heartbeat Time,,,,,,,,,,,,,,
0x1016,0x00,,UNSIGNED32,Number of entries,,ro,no,1,1,1,,0,ManagedConst,no,0,255,no 0x1016,0x00,,UNSIGNED32,Number of entries,,ro,no,1,1,20,,0,ManagedConst,no,0,255,no
0x1016,0x01,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,0,,0,ManagedVariable,no,0,4294967295,no 0x1016,0x01,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x02,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x03,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x04,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x05,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x06,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x07,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x08,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x09,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x0a,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x0b,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x0c,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x0d,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x0e,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x0f,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x10,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x11,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x12,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x13,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1016,0x14,,UNSIGNED32,Consumer Heartbeat Time,,rw,no,1,1,500,,0,ManagedVariable,no,0,4294967295,no
0x1017,0x00,VARIABLE,UNSIGNED16,Producer Heartbeat Time,,rw,no,0,0,1500,,0,ManagedVariable,no,0,65535,no 0x1017,0x00,VARIABLE,UNSIGNED16,Producer Heartbeat Time,,rw,no,0,0,100,,0,ManagedVariable,no,0,65535,no
0x1018,,RECORD,UNSIGNED8,Identity Object,,,,,,,,,,,,,, 0x1018,,RECORD,UNSIGNED8,Identity Object,,,,,,,,,,,,,,
0x1018,0x00,,UNSIGNED8,Number of entries,,ro,no,1,1,4,,0,ManagedConst,no,0,255,no 0x1018,0x00,,UNSIGNED8,Number of entries,,ro,no,1,1,4,,0,ManagedConst,no,0,255,no
@ -235,6 +254,33 @@ index,sub,objectcode,datatype,edsname,varname,access,mapable,hasdefault,defaulti
0x1804,0x05,,UNSIGNED16,Event timer,,rw,no,1,0,500,,0,ManagedVariable,no,0,0xffff,no 0x1804,0x05,,UNSIGNED16,Event timer,,rw,no,1,0,500,,0,ManagedVariable,no,0,0xffff,no
0x1804,0x06,,UNSIGNED8,SYNC start value,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no 0x1804,0x06,,UNSIGNED8,SYNC start value,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no
0x1805,,RECORD,UNSIGNED8,TPDO communication parameter,,,,,,,,,,,,,,
0x1805,0x00,,UNSIGNED8,Highest sub-index supported,,const,both,1,1,6,,0,ManagedConst,no,2,6,no
0x1805,0x01,,UNSIGNED32,COB-ID used by TPDO,,rw,tpdo,1,2,$NODEID+0x180+2,,0,ManagedVariable,no,128,4294967295,no
0x1805,0x02,,UNSIGNED8,Transmission type,,rw,no,1,0,254,,0,ManagedVariable,no,0,255,no
0x1805,0x03,,UNSIGNED16,Inhibit time,,rw,no,1,0,,,0,ManagedVariable,no,0,0xffff,no
0x1805,0x04,,UNSIGNED8,Inhibit time,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no
0x1805,0x05,,UNSIGNED16,Event timer,,rw,no,1,0,500,,0,ManagedVariable,no,0,0xffff,no
0x1805,0x06,,UNSIGNED8,SYNC start value,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no
0x1806,,RECORD,UNSIGNED8,TPDO communication parameter,,,,,,,,,,,,,,
0x1806,0x00,,UNSIGNED8,Highest sub-index supported,,const,both,1,1,6,,0,ManagedConst,no,2,6,no
0x1806,0x01,,UNSIGNED32,COB-ID used by TPDO,,rw,tpdo,1,2,$NODEID+0x180+3,,0,ManagedVariable,no,128,4294967295,no
0x1806,0x02,,UNSIGNED8,Transmission type,,rw,no,1,0,254,,0,ManagedVariable,no,0,255,no
0x1806,0x03,,UNSIGNED16,Inhibit time,,rw,no,1,0,,,0,ManagedVariable,no,0,0xffff,no
0x1806,0x04,,UNSIGNED8,Inhibit time,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no
0x1806,0x05,,UNSIGNED16,Event timer,,rw,no,1,0,500,,0,ManagedVariable,no,0,0xffff,no
0x1806,0x06,,UNSIGNED8,SYNC start value,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no
0x1807,,RECORD,UNSIGNED8,TPDO communication parameter,,,,,,,,,,,,,,
0x1807,0x00,,UNSIGNED8,Highest sub-index supported,,const,both,1,1,6,,0,ManagedConst,no,2,6,no
0x1807,0x01,,UNSIGNED32,COB-ID used by TPDO,,rw,tpdo,1,2,$NODEID+0x180+4,,0,ManagedVariable,no,128,4294967295,no
0x1807,0x02,,UNSIGNED8,Transmission type,,rw,no,1,0,254,,0,ManagedVariable,no,0,255,no
0x1807,0x03,,UNSIGNED16,Inhibit time,,rw,no,1,0,,,0,ManagedVariable,no,0,0xffff,no
0x1807,0x04,,UNSIGNED8,Inhibit time,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no
0x1807,0x05,,UNSIGNED16,Event timer,,rw,no,1,0,500,,0,ManagedVariable,no,0,0xffff,no
0x1807,0x06,,UNSIGNED8,SYNC start value,,rw,no,1,0,,,0,ManagedVariable,no,0,0xff,no
0x1a00,,RECORD,UNSIGNED8,Conductivity Data OUT1,,,,,,,,,,,,,, 0x1a00,,RECORD,UNSIGNED8,Conductivity Data OUT1,,,,,,,,,,,,,,
0x1a00,0x00,,UNSIGNED8,Number of entries,,const,no,1,1,2,,0,ManagedConst,no,0,255,no 0x1a00,0x00,,UNSIGNED8,Number of entries,,const,no,1,1,2,,0,ManagedConst,no,0,255,no
0x1a00,0x01,,UNSIGNED32,Mapping Entry 1,,const,tpdo,1,1,1610744096,,0,ManagedConst,no,0,0,no 0x1a00,0x01,,UNSIGNED32,Mapping Entry 1,,const,tpdo,1,1,1610744096,,0,ManagedConst,no,0,0,no
@ -257,8 +303,22 @@ index,sub,objectcode,datatype,edsname,varname,access,mapable,hasdefault,defaulti
0x1a04,,RECORD,UNSIGNED8, Pressue and Flowmeter Data OUT2,,,,,,,,,,,,,, 0x1a04,,RECORD,UNSIGNED8, Pressue and Flowmeter Data OUT2,,,,,,,,,,,,,,
0x1a04,0x00,,UNSIGNED8,Number of entries,,const,no,1,1,2,,0,ManagedConst,no,0,255,no 0x1a04,0x00,,UNSIGNED8,Number of entries,,const,no,1,1,2,,0,ManagedConst,no,0,255,no
0x1a04,0x01,,UNSIGNED32,Mapping Entry 1,,const,tpdo,1,1,1610679072,,0,ManagedConst,no,0,0,no 0x1a04,0x01,,UNSIGNED32,Mapping Entry 1,,const,no,1,1,1610875424,,0,ManagedConst,no,0,0,no
0x1a04,0x02,,UNSIGNED32,Mapping Entry 2,,const,tpdo,1,1,1610679328,,0,ManagedConst,no,0,0,no 0x1a04,0x02,,UNSIGNED32,Mapping Entry 2,,const,no,1,1,1610940960,,0,ManagedConst,no,0,0,no
0x1a05,,RECORD,UNSIGNED8, Pressue and Flowmeter Data OUT3,,,,,,,,,,,,,,
0x1a05,0x00,,UNSIGNED8,Number of entries,,const,no,1,1,2,,0,ManagedConst,no,0,255,no
0x1a05,0x01,,UNSIGNED32,Mapping Entry 1,,const,no,1,1,1610875680,,0,ManagedConst,no,0,0,no
0x1a05,0x02,,UNSIGNED32,Mapping Entry 2,,const,no,1,1,1610941216,,0,ManagedConst,no,0,0,no
0x1a06,,RECORD,UNSIGNED8, Pressue and Flowmeter Data OUT4,,,,,,,,,,,,,,
0x1a06,0x00,,UNSIGNED8,Number of entries,,const,no,1,1,2,,0,ManagedConst,no,0,255,no
0x1a06,0x01,,UNSIGNED32,Mapping Entry 1,,const,no,1,1,1610875936,,0,ManagedConst,no,0,0,no
0x1a06,0x02,,UNSIGNED32,Mapping Entry 2,,const,no,1,1,1610941472,,0,ManagedConst,no,0,0,no
0x1a07,,RECORD,UNSIGNED8,Pump Data OUT,,,,,,,,,,,,,,
0x1a07,0x00,,UNSIGNED8,Number of entries,,const,no,1,1,1,,0,ManagedConst,no,0,255,no
0x1a07,0x01,,UNSIGNED32,Mapping Entry 1,,const,no,1,1,1611005984,,0,ManagedConst,no,0,0,no
0x2001,0x00,VARIABLE,INTEGER32,Manufacturer Object,,rw,both,0,0,4,,0,ManagedVariable,no,0,0,no 0x2001,0x00,VARIABLE,INTEGER32,Manufacturer Object,,rw,both,0,0,4,,0,ManagedVariable,no,0,0,no
@ -320,3 +380,5 @@ index,sub,objectcode,datatype,edsname,varname,access,mapable,hasdefault,defaulti
0x6005,0x03,,REAL32,PS3 OUT,,rw,both,1,1,,,0,ManagedVariable,no,,,no 0x6005,0x03,,REAL32,PS3 OUT,,rw,both,1,1,,,0,ManagedVariable,no,,,no
0x6005,0x04,,REAL32,PS4 OUT,,rw,both,1,1,,,0,ManagedVariable,no,,,no 0x6005,0x04,,REAL32,PS4 OUT,,rw,both,1,1,,,0,ManagedVariable,no,,,no
0x6006,0x00,VARIABLE,UNSIGNED32,Pump Data OUT,,rw,tpdo,1,1,,,0,ManagedVariable,no,0,0xffffffff,no

View File

@ -64,12 +64,107 @@ DataType: UNSIGNED32
ObjectCode: Array ObjectCode: Array
Sub: 0x00 - Number of entries Sub: 0x00 - Number of entries
DataType: UNSIGNED8 DataType: UNSIGNED8
DefaultValue: 1 DefaultValue: 20
AccessType: ro AccessType: ro
PDOMapping: 0 PDOMapping: 0
Sub: 0x01 - Consumer Heartbeat Time Sub: 0x01 - Consumer Heartbeat Time
DataType: UNSIGNED32 DataType: UNSIGNED32
DefaultValue: 0x0000 DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x02 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x03 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x04 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x05 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x06 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x07 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x08 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x09 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x0a - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x0b - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x0c - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x0d - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x0e - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x0f - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x10 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x11 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x12 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x13 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x14 - Consumer Heartbeat Time
DataType: UNSIGNED32
DefaultValue: 500
AccessType: rw AccessType: rw
PDOMapping: 0 PDOMapping: 0
@ -78,7 +173,7 @@ DataType: UNSIGNED16
ObjectCode: Variable ObjectCode: Variable
Sub: 0x00 - Producer Heartbeat Time Sub: 0x00 - Producer Heartbeat Time
DataType: UNSIGNED16 DataType: UNSIGNED16
DefaultValue: 1500 DefaultValue: 100
AccessType: rw AccessType: rw
PDOMapping: 0 PDOMapping: 0
@ -946,6 +1041,114 @@ ObjectCode: Record
AccessType: rw AccessType: rw
PDOMapping: 0 PDOMapping: 0
Index: 0x1805 - TPDO communication parameter
DataType: UNSIGNED8
ObjectCode: Record
Sub: 0x00 - Highest sub-index supported
DataType: UNSIGNED8
DefaultValue: 6
AccessType: const
PDOMapping: 1
Sub: 0x01 - COB-ID used by TPDO
DataType: UNSIGNED32
DefaultValue: $NODEID+0x180+2
AccessType: rw
PDOMapping: 4
Sub: 0x02 - Transmission type
DataType: UNSIGNED8
DefaultValue: 254
AccessType: rw
PDOMapping: 0
Sub: 0x03 - Inhibit time
DataType: UNSIGNED16
AccessType: rw
PDOMapping: 0
Sub: 0x04 - Inhibit time
DataType: UNSIGNED8
AccessType: rw
PDOMapping: 0
Sub: 0x05 - Event timer
DataType: UNSIGNED16
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x06 - SYNC start value
DataType: UNSIGNED8
AccessType: rw
PDOMapping: 0
Index: 0x1806 - TPDO communication parameter
DataType: UNSIGNED8
ObjectCode: Record
Sub: 0x00 - Highest sub-index supported
DataType: UNSIGNED8
DefaultValue: 6
AccessType: const
PDOMapping: 1
Sub: 0x01 - COB-ID used by TPDO
DataType: UNSIGNED32
DefaultValue: $NODEID+0x180+3
AccessType: rw
PDOMapping: 4
Sub: 0x02 - Transmission type
DataType: UNSIGNED8
DefaultValue: 254
AccessType: rw
PDOMapping: 0
Sub: 0x03 - Inhibit time
DataType: UNSIGNED16
AccessType: rw
PDOMapping: 0
Sub: 0x04 - Inhibit time
DataType: UNSIGNED8
AccessType: rw
PDOMapping: 0
Sub: 0x05 - Event timer
DataType: UNSIGNED16
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x06 - SYNC start value
DataType: UNSIGNED8
AccessType: rw
PDOMapping: 0
Index: 0x1807 - TPDO communication parameter
DataType: UNSIGNED8
ObjectCode: Record
Sub: 0x00 - Highest sub-index supported
DataType: UNSIGNED8
DefaultValue: 6
AccessType: const
PDOMapping: 1
Sub: 0x01 - COB-ID used by TPDO
DataType: UNSIGNED32
DefaultValue: $NODEID+0x180+4
AccessType: rw
PDOMapping: 4
Sub: 0x02 - Transmission type
DataType: UNSIGNED8
DefaultValue: 254
AccessType: rw
PDOMapping: 0
Sub: 0x03 - Inhibit time
DataType: UNSIGNED16
AccessType: rw
PDOMapping: 0
Sub: 0x04 - Inhibit time
DataType: UNSIGNED8
AccessType: rw
PDOMapping: 0
Sub: 0x05 - Event timer
DataType: UNSIGNED16
DefaultValue: 500
AccessType: rw
PDOMapping: 0
Sub: 0x06 - SYNC start value
DataType: UNSIGNED8
AccessType: rw
PDOMapping: 0
Index: 0x1a00 - Conductivity Data OUT1 Index: 0x1a00 - Conductivity Data OUT1
DataType: UNSIGNED8 DataType: UNSIGNED8
ObjectCode: Record ObjectCode: Record
@ -1032,14 +1235,66 @@ ObjectCode: Record
PDOMapping: 0 PDOMapping: 0
Sub: 0x01 - Mapping Entry 1 Sub: 0x01 - Mapping Entry 1
DataType: UNSIGNED32 DataType: UNSIGNED32
DefaultValue: 0x60010320 DefaultValue: 0x60040220
AccessType: const AccessType: const
PDOMapping: 4 PDOMapping: 0
Sub: 0x02 - Mapping Entry 2 Sub: 0x02 - Mapping Entry 2
DataType: UNSIGNED32 DataType: UNSIGNED32
DefaultValue: 0x60010420 DefaultValue: 0x60050220
AccessType: const AccessType: const
PDOMapping: 4 PDOMapping: 0
Index: 0x1a05 - Pressue and Flowmeter Data OUT3
DataType: UNSIGNED8
ObjectCode: Record
Sub: 0x00 - Number of entries
DataType: UNSIGNED8
DefaultValue: 2
AccessType: const
PDOMapping: 0
Sub: 0x01 - Mapping Entry 1
DataType: UNSIGNED32
DefaultValue: 0x60040320
AccessType: const
PDOMapping: 0
Sub: 0x02 - Mapping Entry 2
DataType: UNSIGNED32
DefaultValue: 0x60050320
AccessType: const
PDOMapping: 0
Index: 0x1a06 - Pressue and Flowmeter Data OUT4
DataType: UNSIGNED8
ObjectCode: Record
Sub: 0x00 - Number of entries
DataType: UNSIGNED8
DefaultValue: 2
AccessType: const
PDOMapping: 0
Sub: 0x01 - Mapping Entry 1
DataType: UNSIGNED32
DefaultValue: 0x60040420
AccessType: const
PDOMapping: 0
Sub: 0x02 - Mapping Entry 2
DataType: UNSIGNED32
DefaultValue: 0x60050420
AccessType: const
PDOMapping: 0
Index: 0x1a07 - Pump Data OUT
DataType: UNSIGNED8
ObjectCode: Record
Sub: 0x00 - Number of entries
DataType: UNSIGNED8
DefaultValue: 1
AccessType: const
PDOMapping: 0
Sub: 0x01 - Mapping Entry 1
DataType: UNSIGNED32
DefaultValue: 0x60060020
AccessType: const
PDOMapping: 0
Index: 0x2001 - Manufacturer Object Index: 0x2001 - Manufacturer Object
DataType: INTEGER32 DataType: INTEGER32
@ -1253,3 +1508,11 @@ ObjectCode: Array
DataType: REAL32 DataType: REAL32
AccessType: rw AccessType: rw
PDOMapping: 1 PDOMapping: 1
Index: 0x6006 - Pump Data OUT
DataType: UNSIGNED32
ObjectCode: Variable
Sub: 0x00 - Pump Data OUT
DataType: UNSIGNED32
AccessType: rw
PDOMapping: 4

View File

@ -1,6 +1,6 @@
/* /*
* Stack definitions for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2 * Stack definitions for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2
* */ * 25 04 2025 13:57:30 */
/* protect against multiple inclusion of the file */ /* protect against multiple inclusion of the file */
#ifndef GEN_DEFINE_H #ifndef GEN_DEFINE_H
@ -19,10 +19,10 @@
#define CO_REC_BUFFER_COUNTS 10u #define CO_REC_BUFFER_COUNTS 10u
#define CO_TR_BUFFER_COUNTS 20u #define CO_TR_BUFFER_COUNTS 20u
/* Number of objects per line */ /* Number of objects per line */
#define CO_OBJECTS_LINE_0_CNT 56u #define CO_OBJECTS_LINE_0_CNT 63u
#define CO_OBJECT_COUNTS 56u #define CO_OBJECT_COUNTS 63u
#define CO_COB_COUNTS 75u #define CO_COB_COUNTS 78u
#define CO_TXPDO_COUNTS 5u #define CO_TXPDO_COUNTS 8u
#define CO_RXPDO_COUNTS 3u #define CO_RXPDO_COUNTS 3u
#define CO_SSDO_COUNTS 1u #define CO_SSDO_COUNTS 1u
#define CO_CSDO_COUNTS 20u #define CO_CSDO_COUNTS 20u
@ -42,7 +42,7 @@
#define CO_LSS_INQUIRY_SERVICES 1u #define CO_LSS_INQUIRY_SERVICES 1u
#define CO_SDO_SERVER_CNT 1u #define CO_SDO_SERVER_CNT 1u
#define CO_SDO_CLIENT_CNT 20u #define CO_SDO_CLIENT_CNT 20u
#define CO_PDO_TRANSMIT_CNT 5u #define CO_PDO_TRANSMIT_CNT 8u
#define CO_PDO_RECEIVE_CNT 3u #define CO_PDO_RECEIVE_CNT 3u
#define CO_MAX_MAP_ENTRIES 2u #define CO_MAX_MAP_ENTRIES 2u
#define CO_HB_CONSUMER_CNT 20u #define CO_HB_CONSUMER_CNT 20u
@ -55,7 +55,7 @@
#define CO_SDO_QUEUE_LEN 0u #define CO_SDO_QUEUE_LEN 0u
#define CO_INHIBIT_SUPPORTED 1u #define CO_INHIBIT_SUPPORTED 1u
/* number of used COB objects */ /* number of used COB objects */
#define CO_COB_CNT 75u #define CO_COB_CNT 78u
/* Definition of number of call-back functions for each service*/ /* Definition of number of call-back functions for each service*/

View File

@ -1,6 +1,6 @@
/* /*
* static indication definitions for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2 * static indication definitions for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2
* Tue Feb 25 14:59:00 2025 * Fri Apr 25 13:57:30 2025
*/ */
/* protect against multiple inclusion of the file */ /* protect against multiple inclusion of the file */

View File

@ -1,6 +1,6 @@
/* /*
* CO index/J1939 PGN/raw CAN-ID defines for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2 * CO index/J1939 PGN/raw CAN-ID defines for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2
* Tue Feb 25 14:58:59 2025 * Fri Apr 25 13:57:30 2025
*/ */
/* protect against multiple inclusion of the file */ /* protect against multiple inclusion of the file */
@ -72,11 +72,17 @@
#define I_TPDO_COMMUNICATION_PARAMETER2 0x1802u #define I_TPDO_COMMUNICATION_PARAMETER2 0x1802u
#define I_TPDO_COMMUNICATION_PARAMETER3 0x1803u #define I_TPDO_COMMUNICATION_PARAMETER3 0x1803u
#define I_TPDO_COMMUNICATION_PARAMETER4 0x1804u #define I_TPDO_COMMUNICATION_PARAMETER4 0x1804u
#define I_TPDO_COMMUNICATION_PARAMETER5 0x1805u
#define I_TPDO_COMMUNICATION_PARAMETER6 0x1806u
#define I_TPDO_COMMUNICATION_PARAMETER7 0x1807u
#define I_CONDUCTIVITY_DATA_OUT1 0x1a00u #define I_CONDUCTIVITY_DATA_OUT1 0x1a00u
#define I_CONDUCTIVITY_DATA_OUT2 0x1a01u #define I_CONDUCTIVITY_DATA_OUT2 0x1a01u
#define I_CONDUCTIVITY_DATA_OUT3 0x1a02u #define I_CONDUCTIVITY_DATA_OUT3 0x1a02u
#define I_PRESSUE_AND_FLOWMETER_DATA_OUT1 0x1a03u #define I_PRESSUE_AND_FLOWMETER_DATA_OUT1 0x1a03u
#define I_PRESSUE_AND_FLOWMETER_DATA_OUT2 0x1a04u #define I_PRESSUE_AND_FLOWMETER_DATA_OUT2 0x1a04u
#define I_PRESSUE_AND_FLOWMETER_DATA_OUT3 0x1a05u
#define I_PRESSUE_AND_FLOWMETER_DATA_OUT4 0x1a06u
#define I_PUMP_DATA_OUT 0x1a07u
#define I_MANUFACTURER_OBJECT 0x2001u #define I_MANUFACTURER_OBJECT 0x2001u
#define I_MANAGED_ARRAY 0x3000u #define I_MANAGED_ARRAY 0x3000u
#define S_SUB_1 0x1u #define S_SUB_1 0x1u
@ -120,6 +126,7 @@
#define S_PS2_OUT 0x2u #define S_PS2_OUT 0x2u
#define S_PS3_OUT 0x3u #define S_PS3_OUT 0x3u
#define S_PS4_OUT 0x4u #define S_PS4_OUT 0x4u
#define I_PUMP_DATA_OUT1 0x6006u
#define S_NUMBER_OF_ENTRIES 0x0u #define S_NUMBER_OF_ENTRIES 0x0u
#endif /* GEN_INDICES_H */ #endif /* GEN_INDICES_H */

View File

@ -1,6 +1,6 @@
/* /*
* object dictionary for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2 * object dictionary for enduranceTestBench - generated by CANopen DeviceDesigner 3.14.2
* Tue Feb 25 14:59:00 2025 * Fri Apr 25 13:57:30 2025
*/ */
#include <stdlib.h> #include <stdlib.h>
@ -31,8 +31,8 @@
/* definition of static indication function pointers */ /* definition of static indication function pointers */
/* number of objects */ /* number of objects */
#define CO_OD_ASSIGN_CNT 56u #define CO_OD_ASSIGN_CNT 63u
#define CO_OBJ_DESC_CNT 231u #define CO_OBJ_DESC_CNT 261u
/* definition of managed variables */ /* definition of managed variables */
static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= { static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= {
@ -46,7 +46,7 @@ static UNSIGNED8 CO_STORAGE_CLASS od_u8[8]= {
(UNSIGNED8)0u /* 0x6000:5 */}; (UNSIGNED8)0u /* 0x6000:5 */};
static UNSIGNED16 CO_STORAGE_CLASS od_u16[1]= { static UNSIGNED16 CO_STORAGE_CLASS od_u16[1]= {
(UNSIGNED16)0u /* 0x1015:0 */}; (UNSIGNED16)0u /* 0x1015:0 */};
static UNSIGNED32 CO_STORAGE_CLASS od_u32[23]= { static UNSIGNED32 CO_STORAGE_CLASS od_u32[24]= {
(UNSIGNED32)0UL /* 0x1003:1 */, (UNSIGNED32)0UL /* 0x1003:1 */,
(UNSIGNED32)0UL /* 0x1014:0 */, (UNSIGNED32)0UL /* 0x1014:0 */,
(UNSIGNED32)0UL /* 0x1018:4 */, (UNSIGNED32)0UL /* 0x1018:4 */,
@ -69,7 +69,8 @@ static UNSIGNED32 CO_STORAGE_CLASS od_u32[23]= {
(UNSIGNED32)0UL /* 0x6003:5 */, (UNSIGNED32)0UL /* 0x6003:5 */,
(UNSIGNED32)0UL /* 0x6003:6 */, (UNSIGNED32)0UL /* 0x6003:6 */,
(UNSIGNED32)0UL /* 0x6003:7 */, (UNSIGNED32)0UL /* 0x6003:7 */,
(UNSIGNED32)0UL /* 0x6003:8 */}; (UNSIGNED32)0UL /* 0x6003:8 */,
(UNSIGNED32)0UL /* 0x6006:0 */};
static INTEGER16 CO_STORAGE_CLASS od_i16[2]= { static INTEGER16 CO_STORAGE_CLASS od_i16[2]= {
(INTEGER16)0 /* 0x3000:1 */, (INTEGER16)0 /* 0x3000:1 */,
(INTEGER16)2 /* 0x3000:2 */}; (INTEGER16)2 /* 0x3000:2 */};
@ -102,7 +103,7 @@ static CO_CONST UNSIGNED16 CO_CONST_STORAGE_CLASS od_const_u16[4] = {
(UNSIGNED16)100u, (UNSIGNED16)100u,
(UNSIGNED16)10u, (UNSIGNED16)10u,
(UNSIGNED16)500u}; (UNSIGNED16)500u};
static CO_CONST UNSIGNED32 CO_CONST_STORAGE_CLASS od_const_u32[28] = { static CO_CONST UNSIGNED32 CO_CONST_STORAGE_CLASS od_const_u32[35] = {
(UNSIGNED32)0UL, (UNSIGNED32)0UL,
(UNSIGNED32)128UL, (UNSIGNED32)128UL,
(UNSIGNED32)500UL, (UNSIGNED32)500UL,
@ -130,7 +131,14 @@ static CO_CONST UNSIGNED32 CO_CONST_STORAGE_CLASS od_const_u32[28] = {
(UNSIGNED32)1610745120UL, (UNSIGNED32)1610745120UL,
(UNSIGNED32)1610745376UL, (UNSIGNED32)1610745376UL,
(UNSIGNED32)1610875168UL, (UNSIGNED32)1610875168UL,
(UNSIGNED32)1610940704UL}; (UNSIGNED32)1610940704UL,
(UNSIGNED32)1610875424UL,
(UNSIGNED32)1610940960UL,
(UNSIGNED32)1610875680UL,
(UNSIGNED32)1610941216UL,
(UNSIGNED32)1610875936UL,
(UNSIGNED32)1610941472UL,
(UNSIGNED32)1611005984UL};
static CO_CONST INTEGER16 CO_CONST_STORAGE_CLASS od_const_i16[2] = { static CO_CONST INTEGER16 CO_CONST_STORAGE_CLASS od_const_i16[2] = {
(INTEGER16)0, (INTEGER16)0,
(INTEGER16)2}; (INTEGER16)2};
@ -320,6 +328,27 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:4*/ { (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1804:5*/ { (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1804:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:6*/ { (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1804:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1805:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1805:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1805:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1805:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1805:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1805:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1805:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1806:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1806:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1806:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1806:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1806:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1806:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1806:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)8u},/* 0x1807:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_TPDO , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1807:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U8_TPDO , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)6u},/* 0x1807:2*/
{ (UNSIGNED8)3u, CO_DTYPE_U16_TPDO , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1807:3*/
{ (UNSIGNED8)4u, CO_DTYPE_U8_TPDO , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1807:4*/
{ (UNSIGNED8)5u, CO_DTYPE_U16_TPDO , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1807:5*/
{ (UNSIGNED8)6u, CO_DTYPE_U8_TPDO , (UNSIGNED16)8u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x1807:6*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a00:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a00:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)20u},/* 0x1a00:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)20u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)20u},/* 0x1a00:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)21u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)21u},/* 0x1a00:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)21u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)21u},/* 0x1a00:2*/
@ -333,8 +362,16 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)26u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)26u},/* 0x1a03:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)26u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)26u},/* 0x1a03:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)27u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)27u},/* 0x1a03:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)27u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)27u},/* 0x1a03:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a04:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a04:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)12u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)12u},/* 0x1a04:1*/ { (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)28u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)28u},/* 0x1a04:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)13u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR | CO_ATTR_DEFVAL, (UNSIGNED16)13u},/* 0x1a04:2*/ { (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)29u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)29u},/* 0x1a04:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a05:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)30u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)30u},/* 0x1a05:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)31u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)31u},/* 0x1a05:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x1a06:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)32u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)32u},/* 0x1a06:1*/
{ (UNSIGNED8)2u, CO_DTYPE_U32_CONST, (UNSIGNED16)33u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)33u},/* 0x1a06:2*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)4u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)4u},/* 0x1a07:0*/
{ (UNSIGNED8)1u, CO_DTYPE_U32_CONST, (UNSIGNED16)34u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)34u},/* 0x1a07:1*/
{ (UNSIGNED8)0u, CO_DTYPE_I32_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC, (UNSIGNED16)0u},/* 0x2001:0*/ { (UNSIGNED8)0u, CO_DTYPE_I32_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC, (UNSIGNED16)0u},/* 0x2001:0*/
{ (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x3000:0*/ { (UNSIGNED8)0u, CO_DTYPE_U8_CONST , (UNSIGNED16)3u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_DEFVAL, (UNSIGNED16)3u},/* 0x3000:0*/
{ (UNSIGNED8)1u, CO_DTYPE_I16_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR, (UNSIGNED16)0u},/* 0x3000:1*/ { (UNSIGNED8)1u, CO_DTYPE_I16_VAR , (UNSIGNED16)0u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_MAP_TR, (UNSIGNED16)0u},/* 0x3000:1*/
@ -378,6 +415,7 @@ CO_CONST CO_OBJECT_DESC_T CO_CONST_STORAGE_CLASS od_description[CO_OBJ_DESC_CNT]
{ (UNSIGNED8)2u, CO_DTYPE_R32_VAR , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6005:2*/ { (UNSIGNED8)2u, CO_DTYPE_R32_VAR , (UNSIGNED16)5u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6005:2*/
{ (UNSIGNED8)3u, CO_DTYPE_R32_VAR , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6005:3*/ { (UNSIGNED8)3u, CO_DTYPE_R32_VAR , (UNSIGNED16)6u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6005:3*/
{ (UNSIGNED8)4u, CO_DTYPE_R32_VAR , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6005:4*/ { (UNSIGNED8)4u, CO_DTYPE_R32_VAR , (UNSIGNED16)7u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6005:4*/
{ (UNSIGNED8)0u, CO_DTYPE_U32_VAR , (UNSIGNED16)23u, CO_ATTR_NUM | CO_ATTR_READ | CO_ATTR_WRITE | CO_ATTR_MAP_TR | CO_ATTR_MAP_REC | CO_ATTR_DEFVAL, (UNSIGNED16)0u},/* 0x6006:0*/
}; };
/* object dictionary assignment */ /* object dictionary assignment */
@ -425,19 +463,26 @@ CO_CONST CO_OD_ASSIGN_T CO_CONST_STORAGE_CLASS od_assign[CO_OD_ASSIGN_CNT] = {
{ 0x1802u, 7u, 6u, CO_ODTYPE_STRUCT, 152u }, { 0x1802u, 7u, 6u, CO_ODTYPE_STRUCT, 152u },
{ 0x1803u, 7u, 6u, CO_ODTYPE_STRUCT, 159u }, { 0x1803u, 7u, 6u, CO_ODTYPE_STRUCT, 159u },
{ 0x1804u, 7u, 6u, CO_ODTYPE_STRUCT, 166u }, { 0x1804u, 7u, 6u, CO_ODTYPE_STRUCT, 166u },
{ 0x1a00u, 3u, 2u, CO_ODTYPE_STRUCT, 173u }, { 0x1805u, 7u, 6u, CO_ODTYPE_STRUCT, 173u },
{ 0x1a01u, 3u, 2u, CO_ODTYPE_STRUCT, 176u }, { 0x1806u, 7u, 6u, CO_ODTYPE_STRUCT, 180u },
{ 0x1a02u, 3u, 2u, CO_ODTYPE_STRUCT, 179u }, { 0x1807u, 7u, 6u, CO_ODTYPE_STRUCT, 187u },
{ 0x1a03u, 3u, 2u, CO_ODTYPE_STRUCT, 182u }, { 0x1a00u, 3u, 2u, CO_ODTYPE_STRUCT, 194u },
{ 0x1a04u, 3u, 2u, CO_ODTYPE_STRUCT, 185u }, { 0x1a01u, 3u, 2u, CO_ODTYPE_STRUCT, 197u },
{ 0x2001u, 1u, 0u, CO_ODTYPE_VAR, 188u }, { 0x1a02u, 3u, 2u, CO_ODTYPE_STRUCT, 200u },
{ 0x3000u, 3u, 2u, CO_ODTYPE_ARRAY, 189u }, { 0x1a03u, 3u, 2u, CO_ODTYPE_STRUCT, 203u },
{ 0x6000u, 6u, 5u, CO_ODTYPE_ARRAY, 192u }, { 0x1a04u, 3u, 2u, CO_ODTYPE_STRUCT, 206u },
{ 0x6001u, 7u, 6u, CO_ODTYPE_ARRAY, 198u }, { 0x1a05u, 3u, 2u, CO_ODTYPE_STRUCT, 209u },
{ 0x6002u, 7u, 6u, CO_ODTYPE_ARRAY, 205u }, { 0x1a06u, 3u, 2u, CO_ODTYPE_STRUCT, 212u },
{ 0x6003u, 9u, 8u, CO_ODTYPE_ARRAY, 212u }, { 0x1a07u, 2u, 1u, CO_ODTYPE_STRUCT, 215u },
{ 0x6004u, 5u, 4u, CO_ODTYPE_ARRAY, 221u }, { 0x2001u, 1u, 0u, CO_ODTYPE_VAR, 217u },
{ 0x6005u, 5u, 4u, CO_ODTYPE_ARRAY, 226u }, { 0x3000u, 3u, 2u, CO_ODTYPE_ARRAY, 218u },
{ 0x6000u, 6u, 5u, CO_ODTYPE_ARRAY, 221u },
{ 0x6001u, 7u, 6u, CO_ODTYPE_ARRAY, 227u },
{ 0x6002u, 7u, 6u, CO_ODTYPE_ARRAY, 234u },
{ 0x6003u, 9u, 8u, CO_ODTYPE_ARRAY, 241u },
{ 0x6004u, 5u, 4u, CO_ODTYPE_ARRAY, 250u },
{ 0x6005u, 5u, 4u, CO_ODTYPE_ARRAY, 255u },
{ 0x6006u, 1u, 0u, CO_ODTYPE_VAR, 260u },
}; };
/* static PDO mapping tables */ /* static PDO mapping tables */
@ -477,8 +522,32 @@ static CO_CONST PDO_TR_MAP_TABLE_T CO_CONST_STORAGE_CLASS mapTableTPDO4 = {
static CO_CONST PDO_TR_MAP_TABLE_T CO_CONST_STORAGE_CLASS mapTableTPDO5 = { static CO_CONST PDO_TR_MAP_TABLE_T CO_CONST_STORAGE_CLASS mapTableTPDO5 = {
(UNSIGNED8)2u, (UNSIGNED8)2u,
{ {
{&od_u32[5], 4u, CO_TRUE, 0x60010320UL }, {&od_r32[1], 4u, CO_TRUE, 0x60040220UL },
{&od_u32[6], 4u, CO_TRUE, 0x60010420UL }, {&od_r32[5], 4u, CO_TRUE, 0x60050220UL },
}
};
/* Mapping table TPDO 6*/
static CO_CONST PDO_TR_MAP_TABLE_T CO_CONST_STORAGE_CLASS mapTableTPDO6 = {
(UNSIGNED8)2u,
{
{&od_r32[2], 4u, CO_TRUE, 0x60040320UL },
{&od_r32[6], 4u, CO_TRUE, 0x60050320UL },
}
};
/* Mapping table TPDO 7*/
static CO_CONST PDO_TR_MAP_TABLE_T CO_CONST_STORAGE_CLASS mapTableTPDO7 = {
(UNSIGNED8)2u,
{
{&od_r32[3], 4u, CO_TRUE, 0x60040420UL },
{&od_r32[7], 4u, CO_TRUE, 0x60050420UL },
}
};
/* Mapping table TPDO 8*/
static CO_CONST PDO_TR_MAP_TABLE_T CO_CONST_STORAGE_CLASS mapTableTPDO8 = {
(UNSIGNED8)1u,
{
{&od_u32[23], 4u, CO_TRUE, 0x60060020UL },
{NULL, (UNSIGNED8)0u, CO_FALSE, 0ul}
} }
}; };
/* unique rpdo defintion */ /* unique rpdo defintion */
@ -775,6 +844,24 @@ CO_COMMON_INIT_VAL_T commonInitVars = {
return(retVal); return(retVal);
} }
CO_HANDLE_WATCHDOG CO_HANDLE_WATCHDOG
/* initialize TPDO 6 */
retVal = coPdoTransmitInit(6u, od_const_u8[6], od_const_u16[0], od_const_u16[3], od_const_u8[0], &mapTableTPDO6);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
/* initialize TPDO 7 */
retVal = coPdoTransmitInit(7u, od_const_u8[6], od_const_u16[0], od_const_u16[3], od_const_u8[0], &mapTableTPDO7);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
/* initialize TPDO 8 */
retVal = coPdoTransmitInit(8u, od_const_u8[6], od_const_u16[0], od_const_u16[3], od_const_u8[0], &mapTableTPDO8);
if (retVal != RET_OK) {
return(retVal);
}
CO_HANDLE_WATCHDOG
/* initialize RPDO 1 */ /* initialize RPDO 1 */
retVal = coPdoReceiveInit(1u, od_const_u8[6], 0u, 0u, &mapTableRPDO0); retVal = coPdoReceiveInit(1u, od_const_u8[6], 0u, 0u, &mapTableRPDO0);
if (retVal != RET_OK) { if (retVal != RET_OK) {
@ -1020,5 +1107,14 @@ RET_T userOverwriteCobIdSettings(void)
cobId = nodeId + 0x180+1; cobId = nodeId + 0x180+1;
ret = coOdSetCobid(0x1804, 1, cobId); ret = coOdSetCobid(0x1804, 1, cobId);
cobId = nodeId + 0x180+2;
ret = coOdSetCobid(0x1805, 1, cobId);
cobId = nodeId + 0x180+3;
ret = coOdSetCobid(0x1806, 1, cobId);
cobId = nodeId + 0x180+4;
ret = coOdSetCobid(0x1807, 1, cobId);
return ret; return ret;
} }

View File

@ -32,6 +32,12 @@ static uint32 GrundfosPmpReadVoltage(uint8 channel_u8);
/****************************************************************************** /******************************************************************************
* Extern Function Definitions * Extern Function Definitions
******************************************************************************/ ******************************************************************************/
void GrundfosPmpInit(GrundfosMain_st *grundfos_pst)
{
grundfos_pst->rawQ_f32 = 0.0f;
}
void GrundfosPmpEnable(uint8 state_u8) void GrundfosPmpEnable(uint8 state_u8)
{ {
if(state_u8 == 0u) if(state_u8 == 0u)
@ -45,11 +51,14 @@ void GrundfosPmpEnable(uint8 state_u8)
} }
uint32 GrundfosPmpFeedback(uint8 channel_u8) void GrundfosPmpFeedback(GrundfosMain_st *grundfos_pst)
{ {
uint32 feedbackSpeed_u32 = (GrundfosPmpReadVoltage(channel_u8)) * 360u; if (grundfos_pst == NULL)
{
/* Error */
}
return feedbackSpeed_u32; grundfos_pst->rawQ_f32 = (GrundfosPmpReadVoltage(grundfos_pst->channel_u32)) * 100 * 360u;
} }

View File

@ -34,7 +34,8 @@ typedef struct
/****************************************************************************** /******************************************************************************
* Extern Function Declarations * Extern Function Declarations
******************************************************************************/ ******************************************************************************/
uint32 GrundfosPmpFeedback(uint8 channel_u8); void GrundfosPmpInit(GrundfosMain_st *grundfos_pst);
void GrundfosPmpFeedback(GrundfosMain_st *grundfos_pst);
void GrundfosPmpEnable(uint8_t state_u8); void GrundfosPmpEnable(uint8_t state_u8);
bool GrundfosPmpSetSpeed(float setSpeed_f); bool GrundfosPmpSetSpeed(float setSpeed_f);
#endif /* GRUNDFOS_H_ */ #endif /* GRUNDFOS_H_ */

View File

@ -56,6 +56,6 @@
#define OD_ENTRY_PU_GRUNDFOS_PUMP_ENABLE_SUB_INDEX 0x01 #define OD_ENTRY_PU_GRUNDFOS_PUMP_ENABLE_SUB_INDEX 0x01
#define OD_ENTRY_PU_GRUNDFOS_PUMP_SET_SPEED_SUB_INDEX 0x02 #define OD_ENTRY_PU_GRUNDFOS_PUMP_SET_SPEED_SUB_INDEX 0x02
#define OD_ENTRY_PU_GRUNDFOS_PUMP_FEEDBACK_SUB_INDEX 0x03 #define OD_ENTRY_PU_GRUNDFOS_PUMP_FEEDBACK_SUB_INDEX 0x00
#endif /* OD_ENTRIES_H_ */ #endif /* OD_ENTRIES_H_ */

View File

@ -119,6 +119,8 @@ void ProcessBoardInit(void)
PressureSensorInit(&pressureSensorPS2_gst); PressureSensorInit(&pressureSensorPS2_gst);
PressureSensorInit(&pressureSensorPS3_gst); PressureSensorInit(&pressureSensorPS3_gst);
PressureSensorInit(&pressureSensorPS4_gst); PressureSensorInit(&pressureSensorPS4_gst);
GrundfosPmpInit(&grundfosPMP_gst);
} }
@ -166,6 +168,8 @@ void ProcessBoardRun(void)
ProcessBoardPressureSensorDataOUT(pressureSensorPS3_gst.rawT_f32); ProcessBoardPressureSensorDataOUT(pressureSensorPS3_gst.rawT_f32);
ProcessBoardPressureSensorDataOUT(pressureSensorPS4_gst.rawT_f32); ProcessBoardPressureSensorDataOUT(pressureSensorPS4_gst.rawT_f32);
ProcessBoardPumpSpeedDataOUT(grundfosPMP_gst.rawQ_f32);
ProcessBoardGrundfosPumpHandler(); ProcessBoardGrundfosPumpHandler();
ProcessBoardReadCondDataIN(); ProcessBoardReadCondDataIN();
@ -215,12 +219,12 @@ static void ProcessBoardGrundfosPumpHandler(void)
startTime_u64 = currentTimeMs_u64; startTime_u64 = currentTimeMs_u64;
} }
GrundfosPmpSetSpeed(speed_u8); // GrundfosPmpSetSpeed(speed_u8);
/* Grundfos Pump feedback speed OUT */ /* Grundfos Pump feedback speed OUT */
pmpSpeed_u32 = GrundfosPmpFeedback(PMP_ADC_CHANNEL); GrundfosPmpFeedback(&grundfosPMP_gst);
if (pmpSpeed_u32 > PU_PMP_RATED_SPEED) if (grundfosPMP_gst.rawQ_f32 > PU_PMP_RATED_SPEED)
{ {
GrundfosPmpEnable(PU_PMP_DISABLE); GrundfosPmpEnable(PU_PMP_DISABLE);
} }
@ -268,25 +272,25 @@ static void ProcessBoardWriteCondDataOUT(void)
static void ProcessBoardFlowmeterDataOUT(float32 rawQ_f32) static void ProcessBoardFlowmeterDataOUT(float32 rawQ_f32)
{ {
NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER1_DATA_OUT_SUB_INDEX, rawQ_f32); NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER1_DATA_OUT_SUB_INDEX, 1.0f);
NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER1_DATA_OUT_SUB_INDEX, rawQ_f32); NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER2_DATA_OUT_SUB_INDEX, 1.0f);
NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER1_DATA_OUT_SUB_INDEX, rawQ_f32); NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER3_DATA_OUT_SUB_INDEX, 1.0f);
NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER1_DATA_OUT_SUB_INDEX, rawQ_f32); NmsCanPutObj_f32(OD_ENTRY_PU_FLOWMETER_DATA_OUT_INDEX, OD_ENTRY_PU_FLOWMETER4_DATA_OUT_SUB_INDEX, 1.0f);
} }
static void ProcessBoardPressureSensorDataOUT(float32 rawT_f32) static void ProcessBoardPressureSensorDataOUT(float32 rawT_f32)
{ {
NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE1_DATA_OUT_SUB_INDEX, rawT_f32); NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE1_DATA_OUT_SUB_INDEX, 2.0f);
NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE1_DATA_OUT_SUB_INDEX, rawT_f32); NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE2_DATA_OUT_SUB_INDEX, 2.0f);
NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE1_DATA_OUT_SUB_INDEX, rawT_f32); NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE3_DATA_OUT_SUB_INDEX, 2.0f);
NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE1_DATA_OUT_SUB_INDEX, rawT_f32); NmsCanPutObj_f32(OD_ENTRY_PU_PRESSURE_DATA_OUT_INDEX, OD_ENTRY_PU_PRESSURE4_DATA_OUT_SUB_INDEX, 2.0f);
} }
static void ProcessBoardPumpSpeedDataOUT(uint32 pmpSpeed_u32) static void ProcessBoardPumpSpeedDataOUT(uint32 pmpSpeed_u32)
{ {
NmsCanPutObj_u32(OD_ENTRY_PU_GRUNDFOS_PUMP_CONTROL_INDEX, OD_ENTRY_PU_GRUNDFOS_PUMP_FEEDBACK_SUB_INDEX, pmpSpeed_u32); NmsCanPutObj_u32(OD_ENTRY_PU_GRUNDFOS_PUMP_CONTROL_INDEX, OD_ENTRY_PU_GRUNDFOS_PUMP_FEEDBACK_SUB_INDEX, 3.0f);
} }

View File

@ -56,7 +56,7 @@
#define SDL_SDO_CLIENT_TO_SERVER_COB 0x600 #define SDL_SDO_CLIENT_TO_SERVER_COB 0x600
#define SDL_SDO_SERVER_TO_CLIENT_COB 0x580 #define SDL_SDO_SERVER_TO_CLIENT_COB 0x580
#define SDL_MIN_OPERATIONAL_NODES 18u /* To be 20, one node not in working state currently */ #define SDL_MIN_OPERATIONAL_NODES 15u /* To be 20, one node not in working state currently */
/****************************************************************************** /******************************************************************************
* Type Declarations * Type Declarations
******************************************************************************/ ******************************************************************************/

150
gui.py
View File

@ -1,6 +1,9 @@
import sys import sys
import time import time
import struct
import canopen import canopen
import can
from can.listener import Listener
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout, QApplication, QWidget, QTableWidget, QTableWidgetItem, QVBoxLayout,
QHBoxLayout, QLabel, QGroupBox, QFormLayout, QPushButton, QMessageBox, QHeaderView QHBoxLayout, QLabel, QGroupBox, QFormLayout, QPushButton, QMessageBox, QHeaderView
@ -9,13 +12,29 @@ from PyQt5.QtCore import QTimer, Qt
from PyQt5.QtGui import QColor from PyQt5.QtGui import QColor
motorBoardEdsPath = r'C:\Users\vineetagupta\Documents\NorthStar-Motor-Valve-Board-Firmware\MotorValveBoard\coappl\motorcontrollervalve.eds' motorBoardEdsPath = r'C:\Users\vineetagupta\Documents\NorthStar-Motor-Valve-Board-Firmware\MotorValveBoard\coappl\motorcontrollervalve.eds'
puBoardEdsPath = r'C:\Users\vineetagupta\Documents\NorthStar-Production-Unit-Board-Firmware\ProcessBoardV1\coappl\processBoard_1.eds' puBoardEdsPath = r'C:\Users\vineetagupta\Documents\NorthStar-Endurance-TestBench\EnduranceTestBench\coappl\enduranceTestBench.eds'
class SDOSetpointListener(Listener):
def __init__(self, parent):
self.parent = parent
def on_message_received(self, msg):
if 0x600 <= msg.arbitration_id <= 0x61F and len(msg.data) >= 8:
node_id = msg.arbitration_id - 0x600
cmd = msg.data[0] & 0xE0
index = msg.data[1] | (msg.data[2] << 8)
subindex = msg.data[3]
if index == 0x6000 and subindex == 0x01 and cmd == 0x20:
setpoint_val = msg.data[4]
self.parent.motorBoardTpdoData[node_id]['setpoint'] = setpoint_val
class NodeTableWindow(QWidget): class NodeTableWindow(QWidget):
def __init__(self, nodes): def __init__(self, nodes):
super().__init__() super().__init__()
self.setWindowTitle("Valve Node Status") self.setWindowTitle("Endurance Test Bench")
self.nodes = nodes self.nodes = nodes
self.motorBoardTpdoData = {} self.motorBoardTpdoData = {}
self.PuBoardData = {} self.PuBoardData = {}
@ -27,82 +46,55 @@ class NodeTableWindow(QWidget):
def init_ui(self): def init_ui(self):
layout = QVBoxLayout(self) layout = QVBoxLayout(self)
# Control bar with connect button
button_row = QHBoxLayout() button_row = QHBoxLayout()
self.connect_btn = QPushButton("Connect to CAN", self) self.connect_btn = QPushButton("Connect to CAN", self)
self.disconnect_btn = QPushButton("Disconnect", self) self.disconnect_btn = QPushButton("Disconnect", self)
self.disconnect_btn.setEnabled(False) self.disconnect_btn.setEnabled(False)
self.connect_btn.clicked.connect(self.handle_connect) self.connect_btn.clicked.connect(self.handle_connect)
self.disconnect_btn.clicked.connect(self.handle_disconnect) self.disconnect_btn.clicked.connect(self.handle_disconnect)
button_row.addWidget(self.connect_btn) button_row.addWidget(self.connect_btn)
button_row.addWidget(self.disconnect_btn) button_row.addWidget(self.disconnect_btn)
layout.addLayout(button_row) layout.addLayout(button_row)
# Main layout split: Table (left) and Details (right)
main_layout = QHBoxLayout() main_layout = QHBoxLayout()
# Valve Table
self.table_widget = QWidget(self) self.table_widget = QWidget(self)
table_layout = QVBoxLayout() table_layout = QVBoxLayout()
# Valve Details Label
table_heading = QLabel("Valve Details") table_heading = QLabel("Valve Details")
table_heading.setAlignment(Qt.AlignLeft) table_heading.setAlignment(Qt.AlignLeft)
table_layout.addWidget(table_heading) table_layout.addWidget(table_heading)
# Table Setup
self.table = QTableWidget(0, 4) self.table = QTableWidget(0, 4)
self.table.setHorizontalHeaderLabels(["Node ID", "Setpoint", "Feedback", "Status"]) self.table.setHorizontalHeaderLabels(["Node ID", "Setpoint", "Feedback", "Status"])
self.table.horizontalHeader().setStretchLastSection(True) self.table.horizontalHeader().setStretchLastSection(True)
self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.table.verticalHeader().setVisible(False) self.table.verticalHeader().setVisible(False)
# Add table to layout
table_layout.addWidget(self.table) table_layout.addWidget(self.table)
# Apply layout to table_widget
self.table_widget.setLayout(table_layout) self.table_widget.setLayout(table_layout)
# Details
self.details_widget = QWidget(self) self.details_widget = QWidget(self)
details_layout = QVBoxLayout(self.details_widget) details_layout = QVBoxLayout(self.details_widget)
pressure_group = QGroupBox("Pressure Sensor Details", self)
pump_group = QGroupBox("Pump Details", self) pressure_layout = QFormLayout(pressure_group)
pump_layout = QFormLayout(pump_group) self.pressure_labels = []
self.pump_labels = []
for i in range(1, 5): for i in range(1, 5):
label = QLabel("Speed: 0 RPM", self) label = QLabel("0 bar", self)
self.pump_labels.append(label) self.pressure_labels.append(label)
pump_layout.addRow(f"Pump {i}", label) pressure_layout.addRow(f"Pressure Sensor {i}", label)
details_layout.addWidget(pump_group) details_layout.addWidget(pressure_group)
flow_group = QGroupBox("Flow Meter Details", self) flow_group = QGroupBox("Flow Meter Details", self)
flow_layout = QFormLayout(flow_group) flow_layout = QFormLayout(flow_group)
self.flow_rate_label = [] self.flow_rate_label = []
for i in range(1, 5): for i in range(1, 5):
label = QLabel("Flow: 0 L/h", self) label = QLabel("0 L/h", self)
self.flow_rate_label.append(label) self.flow_rate_label.append(label)
flow_layout.addRow(f"Flowmeter {i}", label) flow_layout.addRow(f"Flowmeter {i}", label)
details_layout.addWidget(flow_group) details_layout.addWidget(flow_group)
pump_group = QGroupBox("Pump Details", self)
pressure_group = QGroupBox("Pressure Sensor Details", self) pump_layout = QFormLayout(pump_group)
pressure_layout = QFormLayout(pressure_group) self.pump_value_label = QLabel("0 RPM", self)
self.pressure_value_label = QLabel("Pressure: 0 bar", self) pump_layout.addRow("Speed", self.pump_value_label)
pressure_layout.addRow("Pressure", self.pressure_value_label) details_layout.addWidget(pump_group)
details_layout.addWidget(pressure_group)
self.details_widget.setLayout(details_layout) self.details_widget.setLayout(details_layout)
# Combine layouts
main_layout.addWidget(self.table_widget) main_layout.addWidget(self.table_widget)
main_layout.addWidget(self.details_widget) main_layout.addWidget(self.details_widget)
layout.addLayout(main_layout) layout.addLayout(main_layout)
# Set window size
screen = QApplication.primaryScreen() screen = QApplication.primaryScreen()
screen_geometry = screen.availableGeometry() screen_geometry = screen.availableGeometry()
width = int(screen_geometry.width() * 0.4) width = int(screen_geometry.width() * 0.4)
@ -121,64 +113,55 @@ class NodeTableWindow(QWidget):
try: try:
self.network = canopen.Network() self.network = canopen.Network()
self.network.connect(channel='PCAN_USBBUS1', bustype='pcan', bitrate=250000) self.network.connect(channel='PCAN_USBBUS1', bustype='pcan', bitrate=250000)
self.nodes = {} self.nodes = {}
self.motorBoardTpdoData = {} self.motorBoardTpdoData = {}
self.PuBoardData = {} self.PuBoardData = {}
self.init_motor_nodes() self.init_motor_nodes()
self.init_pu_node() self.init_pu_node()
self.listener = SDOSetpointListener(self)
self.notifier = can.Notifier(self.network.bus, [self.listener])
self.connected = True self.connected = True
self.num_nodes = len(self.nodes) self.num_nodes = len(self.nodes)
self.table.setRowCount(self.num_nodes) self.table.setRowCount(self.num_nodes)
for row, node_id in enumerate(sorted(self.nodes.keys())): for row, node_id in enumerate(sorted(self.nodes.keys())):
item = QTableWidgetItem(str(node_id)) item = QTableWidgetItem(str(node_id))
item.setTextAlignment(Qt.AlignCenter) item.setTextAlignment(Qt.AlignCenter)
self.table.setItem(row, 0, item) self.table.setItem(row, 0, item)
self.connect_btn.setStyleSheet("background-color: lightgreen;") self.connect_btn.setStyleSheet("background-color: lightgreen;")
self.disconnect_btn.setEnabled(True) self.disconnect_btn.setEnabled(True)
QMessageBox.information(self, "Connected", "Successfully connected to CAN and initialized nodes.") QMessageBox.information(self, "Connected", "Successfully connected to CAN and initialized nodes.")
except Exception as e: except Exception as e:
QMessageBox.critical(self, "Connection Error", f"Failed to connect:\n{e}") QMessageBox.critical(self, "Connection Error", f"Failed to connect:\n{e}")
self.connected = False self.connected = False
def handle_disconnect(self): def handle_disconnect(self):
try: try:
if hasattr(self, 'notifier'):
self.notifier.stop()
if self.network: if self.network:
self.network.disconnect() self.network.disconnect()
self.connected = False self.connected = False
self.nodes.clear() self.nodes.clear()
self.motorBoardTpdoData.clear() self.motorBoardTpdoData.clear()
self.PuBoardData.clear() self.PuBoardData.clear()
self.table.clearContents() self.table.clearContents()
self.table.setRowCount(0) self.table.setRowCount(0)
self.connect_btn.setEnabled(True) self.connect_btn.setEnabled(True)
self.disconnect_btn.setEnabled(False) self.disconnect_btn.setEnabled(False)
self.connect_btn.setStyleSheet("") # Resets to default style self.connect_btn.setStyleSheet("")
QMessageBox.information(self, "Disconnected", "CAN network disconnected.") QMessageBox.information(self, "Disconnected", "CAN network disconnected.")
except Exception as e: except Exception as e:
QMessageBox.warning(self, "Disconnect Error", f"Error while disconnecting:\n{e}") QMessageBox.warning(self, "Disconnect Error", f"Error while disconnecting:\n{e}")
def init_motor_nodes(self): def init_motor_nodes(self):
for node_id in range(5, 27): for node_id in range(5, 27):
try: try:
node = canopen.RemoteNode(node_id, motorBoardEdsPath) node = canopen.RemoteNode(node_id, motorBoardEdsPath)
self.network.add_node(node) self.network.add_node(node)
time.sleep(0.1) time.sleep(0.1)
self.nodes[node_id] = node self.nodes[node_id] = node
self.motorBoardTpdoData[node_id] = {'setpoint': '-', 'feedback': '-'} self.motorBoardTpdoData[node_id] = {'setpoint': '-', 'feedback': '-'}
if node.nmt.state == 'OPERATIONAL': if node.nmt.state == 'OPERATIONAL':
node.tpdo.read() node.tpdo.read()
node.tpdo[1].enabled = True node.tpdo[1].enabled = True
@ -187,8 +170,6 @@ class NodeTableWindow(QWidget):
def cb(map_obj): def cb(map_obj):
for var in map_obj: for var in map_obj:
if var.index == 0x6002: if var.index == 0x6002:
self.motorBoardTpdoData[nid]['setpoint'] = var.raw
elif var.index == 0x6004:
self.motorBoardTpdoData[nid]['feedback'] = var.raw self.motorBoardTpdoData[nid]['feedback'] = var.raw
return cb return cb
@ -202,37 +183,41 @@ class NodeTableWindow(QWidget):
self.network.add_node(node) self.network.add_node(node)
time.sleep(0.1) time.sleep(0.1)
self.nodes[1] = node self.nodes[1] = node
self.PuBoardData = {'flowmeter': {}, 'pressure': {}} self.PuBoardData = {'flowmeter': {}, 'pressure': {}, 'pump': {}}
if node.nmt.state == 'OPERATIONAL': if node.nmt.state == 'OPERATIONAL':
node.tpdo.read() node.tpdo.read()
node.tpdo[1].enabled = True
# Enable all relevant TPDOs
for tpdo_id in range(4, 9): # TPDO4 to TPDO8
if tpdo_id in node.tpdo:
node.tpdo[tpdo_id].enabled = True
def make_callback(): def make_callback():
def cb(map_obj): def cb(map_obj):
for var in map_obj: for var in map_obj:
if var.index == 0x6005: if var.index == 0x6004:
self.PuBoardData['flowmeter'][f'0x{var.subindex:02X}'] = var.raw self.PuBoardData['flowmeter'][f'0x{var.subindex:02X}'] = var.raw
elif var.index == 0x6006: elif var.index == 0x6005:
self.PuBoardData['pressure'][f'0x{var.subindex:02X}'] = var.raw self.PuBoardData['pressure'][f'0x{var.subindex:02X}'] = var.raw
return cb elif var.index == 0x6006:
self.PuBoardData['pump'][f'0x{var.subindex:02X}'] = var.raw
node.tpdo[1].add_callback(make_callback()) return cb
node.tpdo[tpdo_id].add_callback(make_callback())
except Exception as e: except Exception as e:
print(f"PU node error: {e}") print(f"PU node error: {e}")
def update_table(self): def update_table(self):
if not self.connected: if not self.connected:
return return
for row, node_id in enumerate(sorted(self.nodes.keys())): for row, node_id in enumerate(sorted(self.nodes.keys())):
node = self.nodes[node_id] node = self.nodes[node_id]
try: try:
status = node.nmt.state status = node.nmt.state
except: except:
status = "UNKNOWN" status = "UNKNOWN"
node_item = self.table.item(row, 0) node_item = self.table.item(row, 0)
if node_item: if node_item:
node_item.setBackground( node_item.setBackground(
@ -240,20 +225,31 @@ class NodeTableWindow(QWidget):
QColor("yellow") if status == "PRE-OPERATIONAL" else QColor("yellow") if status == "PRE-OPERATIONAL" else
QColor("red") QColor("red")
) )
set_val = str(self.motorBoardTpdoData.get(node_id, {}).get('setpoint', '-')) set_val = str(self.motorBoardTpdoData.get(node_id, {}).get('setpoint', '-'))
setpoint_item = QTableWidgetItem(set_val) setpoint_item = QTableWidgetItem(set_val)
setpoint_item.setTextAlignment(Qt.AlignCenter) setpoint_item.setTextAlignment(Qt.AlignCenter)
self.table.setItem(row, 1, setpoint_item) self.table.setItem(row, 1, setpoint_item)
fb_val = str(self.motorBoardTpdoData.get(node_id, {}).get('feedback', '-')) fb_val = str(self.motorBoardTpdoData.get(node_id, {}).get('feedback', '-'))
feedback_item = QTableWidgetItem(fb_val) feedback_item = QTableWidgetItem(fb_val)
feedback_item.setTextAlignment(Qt.AlignCenter) feedback_item.setTextAlignment(Qt.AlignCenter)
self.table.setItem(row, 2, feedback_item) self.table.setItem(row, 2, feedback_item)
status_item = QTableWidgetItem(status) status_item = QTableWidgetItem(status)
status_item.setTextAlignment(Qt.AlignCenter) status_item.setTextAlignment(Qt.AlignCenter)
self.table.setItem(row, 3, status_item) self.table.setItem(row, 3, status_item)
# Update flowmeter values
for i in range(1, 5):
value = self.PuBoardData.get("flowmeter", {}).get(f"0x{i:02X}", 0)
self.flow_rate_label[i-1].setText(f"{value} L/h")
# Update pressure sensor values
for i in range(1, 5):
value = self.PuBoardData.get("pressure", {}).get(f"0x{i:02X}", 0)
self.pressure_labels[i-1].setText(f"{value} bar")
# Update pump speed
value = self.PuBoardData.get("pump", {}).get("0x00", 0)
self.pump_value_label.setText(f"{value} RPM")
def main(): def main():