twincat files

This commit is contained in:
Nicolas Trimborn 2021-08-19 19:41:16 +02:00
parent 4896b94dc0
commit 43a13554cf
8 changed files with 3350 additions and 71 deletions

View File

@ -1,6 +1,6 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# TcXaeShell Solution File, Format Version 11.00 # Visual Studio 15
VisualStudioVersion = 15.0.28010.2050 VisualStudioVersion = 15.0.28010.2050
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "MotorData", "MotorData\MotorData.tsproj", "{627AF960-8AD6-492C-BE55-42F15976A40C}" Project("{B1E792BE-AA5F-4E3C-8C82-674BF9C0715B}") = "MotorData", "MotorData\MotorData.tsproj", "{627AF960-8AD6-492C-BE55-42F15976A40C}"

View File

@ -1,5 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4024.11"> <TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4024.12">
<ImageDatas> <ImageDatas>
<ImageData Id="1000">424dd8020000000000003600000028000000100000000e0000000100180000000000a2020000120b0000120b000000000000000000001306e31306e3190ce42b1fe62b1fe61306e31f13e5190ce42519e51306e31306e3190ce42f24e7190ce41306e31306e31306e31306e35f56ec645ced645ced4137e91f13e5473de95f57ec3227e71306e3473de95a51ec271be61306e31306e31409ca524cc68e8ad74f48c1615cc82218d03e36bf716bce746fce453dc01307ce3931ba7d78d27671d1150cb21409ca1712801b1d1d1b1d1d1b1d1d1b1d1d120b891b1d1d1b1d1d1b1d1d1b1d1d120b891b1d1d1b1d1d1b1d1d1b1d1d1712801712807f8080d4d5d5d4d5d5383939120b89545656d4d5d5d4d5d5626464130c89292b2bd4d5d5d4d5d56264641915801712804647471b1d1daaaaaad4d5d5130e82383939292b2b717272d4d5d5151183d4d5d57f80801b1d1d7172721e1c81191580464747d4d5d5d4d5d51b1d1d19158a292b2bd4d5d5d4d5d5292b2b1b1b8ad4d5d56264641b1d1d1b1d1d2427821e1d81d4d5d54647476264643839391e208bd4d5d57f8080464747545656242a8bd4d5d59b9c9c292b2baaaaaa2d3683252882464747d4d5d5d4d5d51b1d1d272d85292b2bd4d5d5d4d5d5292b2b2e37861b1d1dd4d5d5d4d5d5464747394484323bb52324812122822426822526824554c0323883292b822a2d83353c84424cbf3238843940842e32834853865d6ebb5262eb3e43e83334e74147e94349e9535feb4d56ea5662eb484dea545deb636fed545aea5a63ec6671ed8ca0f290a5f2748aef6b7bee5d68ec6874ed788aef8397f17684ef7986ef8c9ff2818ff1818ef08e9df18a97f18791f19ba9f3b0c0f691a4f291a2f28390f192a1f29cacf3a3b3f498a6f3a4b3f4aebdf5b0bef59ea8f3a3adf4bbc7f7c4d1f8cad7f8ced9f9b4c4f6b8c8f6acb8f59aa3f3b6c1f6c5d2f8c2cdf8ccd7f9d2ddf9d5e0fad2daf9d5dcf9dfe7fbe2e9fbe5ebfbe8eefb0000</ImageData> <ImageData Id="1000">424dd8020000000000003600000028000000100000000e0000000100180000000000a2020000120b0000120b000000000000000000001306e31306e3190ce42b1fe62b1fe61306e31f13e5190ce42519e51306e31306e3190ce42f24e7190ce41306e31306e31306e31306e35f56ec645ced645ced4137e91f13e5473de95f57ec3227e71306e3473de95a51ec271be61306e31306e31409ca524cc68e8ad74f48c1615cc82218d03e36bf716bce746fce453dc01307ce3931ba7d78d27671d1150cb21409ca1712801b1d1d1b1d1d1b1d1d1b1d1d120b891b1d1d1b1d1d1b1d1d1b1d1d120b891b1d1d1b1d1d1b1d1d1b1d1d1712801712807f8080d4d5d5d4d5d5383939120b89545656d4d5d5d4d5d5626464130c89292b2bd4d5d5d4d5d56264641915801712804647471b1d1daaaaaad4d5d5130e82383939292b2b717272d4d5d5151183d4d5d57f80801b1d1d7172721e1c81191580464747d4d5d5d4d5d51b1d1d19158a292b2bd4d5d5d4d5d5292b2b1b1b8ad4d5d56264641b1d1d1b1d1d2427821e1d81d4d5d54647476264643839391e208bd4d5d57f8080464747545656242a8bd4d5d59b9c9c292b2baaaaaa2d3683252882464747d4d5d5d4d5d51b1d1d272d85292b2bd4d5d5d4d5d5292b2b2e37861b1d1dd4d5d5d4d5d5464747394484323bb52324812122822426822526824554c0323883292b822a2d83353c84424cbf3238843940842e32834853865d6ebb5262eb3e43e83334e74147e94349e9535feb4d56ea5662eb484dea545deb636fed545aea5a63ec6671ed8ca0f290a5f2748aef6b7bee5d68ec6874ed788aef8397f17684ef7986ef8c9ff2818ff1818ef08e9df18a97f18791f19ba9f3b0c0f691a4f291a2f28390f192a1f29cacf3a3b3f498a6f3a4b3f4aebdf5b0bef59ea8f3a3adf4bbc7f7c4d1f8cad7f8ced9f9b4c4f6b8c8f6acb8f59aa3f3b6c1f6c5d2f8c2cdf8ccd7f9d2ddf9d5e0fad2daf9d5dcf9dfe7fbe2e9fbe5ebfbe8eefb0000</ImageData>
</ImageDatas> </ImageDatas>
@ -19,88 +19,419 @@
<Vars VarGrpType="1"> <Vars VarGrpType="1">
<Name>PlcTask Inputs</Name> <Name>PlcTask Inputs</Name>
<Var> <Var>
<Name>GVL_motor_data.Status</Name> <Name>GVL_motor_data.M1_Status</Name>
<Comment><![CDATA[ Input ]]></Comment> <Comment><![CDATA[ Motor 1 //]]></Comment>
<Type>BYTE</Type> <Type>BYTE</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.Mode</Name> <Name>GVL_motor_data.M1_Mode</Name>
<Type>BYTE</Type> <Type>BYTE</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.Com_State</Name> <Name>GVL_motor_data.M1_Joint_rel_position</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Joint_abs_position</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Motor_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Motor_current_bus</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Motor_currentPhA</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Motor_currentPhB</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Motor_currentPhC</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Motor_HallState</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Motor_dutyCycle</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Status</Name>
<Comment><![CDATA[ Motor 2 //]]></Comment>
<Type>BYTE</Type> <Type>BYTE</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.act_pos</Name> <Name>GVL_motor_data.M2_Mode</Name>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Joint_rel_position</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.PH_A</Name> <Name>GVL_motor_data.M2_Joint_abs_position</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.PH_B</Name> <Name>GVL_motor_data.M2_Motor_speed</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.PH_C</Name> <Name>GVL_motor_data.M2_Motor_current_bus</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.Error</Name> <Name>GVL_motor_data.M2_Motor_currentPhA</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.Phase_Current</Name> <Name>GVL_motor_data.M2_Motor_currentPhB</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.Speed</Name> <Name>GVL_motor_data.M2_Motor_currentPhC</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.Duty</Name> <Name>GVL_motor_data.M2_Motor_HallState</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Motor_dutyCycle</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH1</Name>
<Comment><![CDATA[ EMG //]]></Comment>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH2</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH3</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH4</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH5</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH6</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH7</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.EMG_CH8</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Status</Name>
<Comment><![CDATA[ Motor 3 //]]></Comment>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Mode</Name>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Joint_rel_position</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Joint_abs_position</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Motor_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Motor_current_bus</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Motor_currentPhA</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Motor_currentPhB</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Motor_currentPhC</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Motor_HallState</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Motor_dutyCycle</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Status</Name>
<Comment><![CDATA[ Motor 4//]]></Comment>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Mode</Name>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Joint_rel_position</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Joint_abs_position</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Motor_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Motor_current_bus</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Motor_currentPhA</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Motor_currentPhB</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Motor_currentPhC</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Motor_HallState</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Motor_dutyCycle</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.q_x0</Name>
<Comment><![CDATA[ IMU //]]></Comment>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.q_y0</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.q_z0</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.q_w0</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.FSR_CH1</Name>
<Comment><![CDATA[ EMG //]]></Comment>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.FSR_CH2</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.FSR_CH3</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.FSR_CH4</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.FSR_CH5</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.Pressure_CH1</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.Pressure_CH2</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.Pressure_CH3</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
</Vars> </Vars>
<Vars VarGrpType="2" AreaNo="1"> <Vars VarGrpType="2" AreaNo="1">
<Name>PlcTask Outputs</Name> <Name>PlcTask Outputs</Name>
<Var> <Var>
<Name>GVL_motor_data.op_Mode</Name> <Name>GVL_motor_data.M1_Control_mode</Name>
<Comment><![CDATA[ Output ]]></Comment> <Comment><![CDATA[Read From Ecat Total (XX Bytes)
QSPI_rx_buffer
Motor 1 //]]></Comment>
<Type>BYTE</Type> <Type>BYTE</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.des_pos</Name> <Name>GVL_motor_data.M1_Control_set</Name>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Control_mode</Name>
<Comment><![CDATA[* Motor 2*/]]></Comment>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Control_set</Name>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Control_mode</Name>
<Comment><![CDATA[* Motor 3*/]]></Comment>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Control_set</Name>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Control_mode</Name>
<Comment><![CDATA[* Motor 4*/]]></Comment>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Control_set</Name>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.M1_Desired_pos</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.des_max_current</Name> <Name>GVL_motor_data.M1_Desired_speed</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.des_current</Name> <Name>GVL_motor_data.M1_Desired_current</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.des_speed</Name> <Name>GVL_motor_data.M1_Max_pos</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.I_kp</Name> <Name>GVL_motor_data.M1_Max_velocity</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.I_ki</Name> <Name>GVL_motor_data.M1_Max_current</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.V_kp</Name> <Name>GVL_motor_data.M1_Desired_dc</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
<Var> <Var>
<Name>GVL_motor_data.V_kd</Name> <Name>GVL_motor_data.M2_Desired_pos</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Desired_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Desired_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Max_pos</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Max_velocity</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Max_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M2_Desired_dc</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Desired_pos</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Desired_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Desired_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Max_pos</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Max_velocity</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Max_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M3_Desired_dc</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Desired_pos</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Desired_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Desired_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Max_pos</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Max_velocity</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Max_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.M4_Desired_dc</Name>
<Type>INT</Type> <Type>INT</Type>
</Var> </Var>
</Vars> </Vars>
@ -122,13 +453,13 @@
</Project> </Project>
</Plc> </Plc>
<Io> <Io>
<Device Id="2" DevType="111" DevFlags="#x0003" AmsPort="28674" AmsNetId="192.168.61.1.3.1" RemoteName="Device 2 (EtherCAT)"> <Device Id="2" DevType="111" DevFlags="#x0003" AmsPort="28674" AmsNetId="10.183.82.252.3.1" RemoteName="Device 2 (EtherCAT)">
<Name>Device 2 (EtherCAT)</Name> <Name>Device 2 (EtherCAT)</Name>
<AddressInfo> <AddressInfo>
<Pnp> <Pnp>
<DeviceDesc>Ethernet (TwinCAT-Intel PCI Ethernet Adapter (Gigab</DeviceDesc> <DeviceDesc>Ethernet (Realtek PCIe GbE Family Controller)</DeviceDesc>
<DeviceName>\DEVICE\{B319FB6B-ED15-445B-9318-290BECEEFA76}</DeviceName> <DeviceName>\DEVICE\{7A5E866B-9C27-4C9A-AB1A-3FD2FE6A43CC}</DeviceName>
<DeviceData>4c5262a1d9ac</DeviceData> <DeviceData>b025aa33135b</DeviceData>
</Pnp> </Pnp>
</AddressInfo> </AddressInfo>
<Image Id="1" AddrType="9" ImageType="3"> <Image Id="1" AddrType="9" ImageType="3">
@ -143,7 +474,7 @@
<Fmmu>0000000000000000001100020100000001000000000000000000000000000000</Fmmu> <Fmmu>0000000000000000001100020100000001000000000000000000000000000000</Fmmu>
<Fmmu>0000000000000000001800010100000002000000000000000000000000000000</Fmmu> <Fmmu>0000000000000000001800010100000002000000000000000000000000000000</Fmmu>
<Pdo Name="MCU2ECAT" Index="#x1600" Flags="#x0010" SyncMan="1"> <Pdo Name="MCU2ECAT" Index="#x1600" Flags="#x0010" SyncMan="1">
<Entry Name="M1__status" Index="#x3001" Sub="#x01"> <Entry Name="M1__status" Index="#x3001" Sub="#x01" Flags="#x00008020">
<Type>BYTE</Type> <Type>BYTE</Type>
</Entry> </Entry>
<Entry Name="M1__mode" Index="#x3002" Sub="#x01"> <Entry Name="M1__mode" Index="#x3002" Sub="#x01">
@ -349,13 +680,13 @@
</Entry> </Entry>
</Pdo> </Pdo>
<Pdo Name="ECAT2MCU" Index="#x1a00" InOut="1" Flags="#x0010" SyncMan="0"> <Pdo Name="ECAT2MCU" Index="#x1a00" InOut="1" Flags="#x0010" SyncMan="0">
<Entry Name="M1__control_mode" Index="#x3101" Sub="#x01"> <Entry Name="M1__control_mode" Index="#x3101" Sub="#x01" Flags="#x00008020">
<Type>BYTE</Type> <Type>BYTE</Type>
</Entry> </Entry>
<Entry Name="M1__control_set" Index="#x3102" Sub="#x01"> <Entry Name="M1__control_set" Index="#x3102" Sub="#x01" Flags="#x00008020">
<Type>BYTE</Type> <Type>BYTE</Type>
</Entry> </Entry>
<Entry Name="M1__desired_position" Index="#x3103" Sub="#x01"> <Entry Name="M1__desired_position" Index="#x3103" Sub="#x01" Flags="#x00008020">
<Type>INT</Type> <Type>INT</Type>
</Entry> </Entry>
<Entry Name="M1__desired_speed" Index="#x3104" Sub="#x01"> <Entry Name="M1__desired_speed" Index="#x3104" Sub="#x01">
@ -512,4 +843,33 @@
</Device> </Device>
</Io> </Io>
</Project> </Project>
<Mappings>
<MappingInfo Identifier="{00000000-2001-0850-0020-500810000403}" Id="#x02030010"/>
<OwnerA Name="TIPC^Motordata_PLC^Motordata_PLC Instance">
<OwnerB Name="TIID^Device 2 (EtherCAT)^Box 1 (LAN9252-2_motor_Master)">
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Joint_rel_position" VarB="MCU2ECAT^M1^Joint_rel_position"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Mode" VarB="MCU2ECAT^M1^mode"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Motor_HallState" VarB="MCU2ECAT^M1^Motor_hallState"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Motor_currentPhA" VarB="MCU2ECAT^M1^Motor_currentPhA"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Motor_currentPhB" VarB="MCU2ECAT^M1^Motor_currentPhB"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Motor_currentPhC" VarB="MCU2ECAT^M1^Motor_currentPhC"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Motor_current_bus" VarB="MCU2ECAT^M1^Motor_current_bus"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Motor_dutyCycle" VarB="MCU2ECAT^M1^Motor_dutyCycle"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Motor_speed" VarB="MCU2ECAT^M1^Motor_speed"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M1_Status" VarB="MCU2ECAT^M1^status"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Joint_rel_position" VarB="MCU2ECAT^M2^Joint__rel_position"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Mode" VarB="MCU2ECAT^M2^mode"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Motor_HallState" VarB="MCU2ECAT^M2^Motor_hallState"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Motor_currentPhA" VarB="MCU2ECAT^M2^Motor_currentPhA"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Motor_currentPhB" VarB="MCU2ECAT^M2^Motor_currentPhB"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Motor_currentPhC" VarB="MCU2ECAT^M2^Motor_currentPhC"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Motor_current_bus" VarB="MCU2ECAT^M2^Motor_current_bus"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Motor_dutyCycle" VarB="MCU2ECAT^M2^Motor_dutyCycle"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Motor_speed" VarB="MCU2ECAT^M2^Motor_speed"/>
<Link VarA="PlcTask Inputs^GVL_motor_data.M2_Status" VarB="MCU2ECAT^M2^status"/>
<Link VarA="PlcTask Outputs^GVL_motor_data.M1_Desired_pos" VarB="ECAT2MCU^M1^desired_position"/>
<Link VarA="PlcTask Outputs^GVL_motor_data.M2_Desired_pos" VarB="ECAT2MCU^M2^desired_position"/>
</OwnerB>
</OwnerA>
</Mappings>
</TcSmProject> </TcSmProject>

View File

@ -1,31 +1,132 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.5"> <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.6">
<GVL Name="GVL_motor_data" Id="{f1f9826e-bbc5-4781-8d1a-d97243969113}"> <GVL Name="GVL_motor_data" Id="{f1f9826e-bbc5-4781-8d1a-d97243969113}">
<Declaration><![CDATA[{attribute 'qualified_only'} <Declaration><![CDATA[{attribute 'qualified_only'}
VAR_GLOBAL VAR_GLOBAL
// Output // Motor 1 //
op_Mode AT %Q* : BYTE := 1; M1_Status AT %I* : BYTE;
des_pos AT %Q* : INT; M1_Mode AT %I* : BYTE;
des_max_current AT %Q* : INT := 100; M1_Joint_rel_position AT %I* : INT;
des_current AT %Q* : INT := 100; M1_Joint_abs_position AT %I* : INT;
des_speed AT %Q* : INT := 1000; M1_Motor_speed AT %I* : INT;
I_kp AT %Q* : INT := 1; M1_Motor_current_bus AT %I* : INT;
I_ki AT %Q* : INT := 10; M1_Motor_currentPhA AT %I* : INT;
V_kp AT %Q* : INT := 1; M1_Motor_currentPhB AT %I* : INT;
V_kd AT %Q* : INT := 10; M1_Motor_currentPhC AT %I* : INT;
M1_Motor_HallState AT %I* : INT;
M1_Motor_dutyCycle AT %I* : INT;
// Motor 2 //
M2_Status AT %I* : BYTE;
M2_Mode AT %I* : BYTE;
M2_Joint_rel_position AT %I* : INT;
M2_Joint_abs_position AT %I* : INT;
M2_Motor_speed AT %I* : INT;
M2_Motor_current_bus AT %I* : INT;
M2_Motor_currentPhA AT %I* : INT;
M2_Motor_currentPhB AT %I* : INT;
M2_Motor_currentPhC AT %I* : INT;
M2_Motor_HallState AT %I* : INT;
M2_Motor_dutyCycle AT %I* : INT;
// EMG //
EMG_CH1 AT %I* : INT;
EMG_CH2 AT %I* : INT;
EMG_CH3 AT %I* : INT;
EMG_CH4 AT %I* : INT;
EMG_CH5 AT %I* : INT;
EMG_CH6 AT %I* : INT;
EMG_CH7 AT %I* : INT;
EMG_CH8 AT %I* : INT;
// Motor 3 //
M3_Status AT %I* : BYTE;
M3_Mode AT %I* : BYTE;
M3_Joint_rel_position AT %I* : INT;
M3_Joint_abs_position AT %I* : INT;
M3_Motor_speed AT %I* : INT;
M3_Motor_current_bus AT %I* : INT;
M3_Motor_currentPhA AT %I* : INT;
M3_Motor_currentPhB AT %I* : INT;
M3_Motor_currentPhC AT %I* : INT;
M3_Motor_HallState AT %I* : INT;
M3_Motor_dutyCycle AT %I* : INT;
// Motor 4//
M4_Status AT %I* : BYTE;
M4_Mode AT %I* : BYTE;
M4_Joint_rel_position AT %I* : INT;
M4_Joint_abs_position AT %I* : INT;
M4_Motor_speed AT %I* : INT;
M4_Motor_current_bus AT %I* : INT;
M4_Motor_currentPhA AT %I* : INT;
M4_Motor_currentPhB AT %I* : INT;
M4_Motor_currentPhC AT %I* : INT;
M4_Motor_HallState AT %I* : INT;
M4_Motor_dutyCycle AT %I* : INT;
// IMU //
q_x0 AT %I* : INT;
q_y0 AT %I* : INT;
q_z0 AT %I* : INT;
q_w0 AT %I* : INT;
// EMG //
FSR_CH1 AT %I* : INT;
FSR_CH2 AT %I* : INT;
FSR_CH3 AT %I* : INT;
FSR_CH4 AT %I* : INT;
FSR_CH5 AT %I* : INT;
Pressure_CH1 AT %I* : INT;
Pressure_CH2 AT %I* : INT;
Pressure_CH3 AT %I* : INT;
//Read From Ecat Total (XX Bytes)
//QSPI_rx_buffer
// Motor 1 //
M1_Control_mode AT %Q* : BYTE := 0;
M1_Control_set AT %Q* : BYTE := 0;
M1_Desired_pos AT %Q* : INT := 0;
M1_Desired_speed AT %Q* : INT := 0;
M1_Desired_current AT %Q* : INT := 0;
M1_Max_pos AT %Q* : INT := 0;
M1_Max_velocity AT %Q* : INT := 0;
M1_Max_current AT %Q* : INT := 0;
M1_Desired_dc AT %Q* : INT := 0;
///* Motor 2*/
M2_Control_mode AT %Q* : BYTE := 0;
M2_Control_set AT %Q* : BYTE := 0;
M2_Desired_pos AT %Q* : INT := 0;
M2_Desired_speed AT %Q* : INT := 0;
M2_Desired_current AT %Q* : INT := 0;
M2_Max_pos AT %Q* : INT := 0;
M2_Max_velocity AT %Q* : INT := 0;
M2_Max_current AT %Q* : INT := 0;
M2_Desired_dc AT %Q* : INT := 0;
///* Motor 3*/
M3_Control_mode AT %Q* : BYTE := 0;
M3_Control_set AT %Q* : BYTE := 0;
M3_Desired_pos AT %Q* : INT := 0;
M3_Desired_speed AT %Q* : INT := 0;
M3_Desired_current AT %Q* : INT := 0;
M3_Max_pos AT %Q* : INT := 0;
M3_Max_velocity AT %Q* : INT := 0;
M3_Max_current AT %Q* : INT := 0;
M3_Desired_dc AT %Q* : INT := 0;
///* Motor 4*/
M4_Control_mode AT %Q* : BYTE := 0;
M4_Control_set AT %Q* : BYTE := 0;
M4_Desired_pos AT %Q* : INT := 0;
M4_Desired_speed AT %Q* : INT := 0;
M4_Desired_current AT %Q* : INT := 0;
M4_Max_pos AT %Q* : INT := 0;
M4_Max_velocity AT %Q* : INT := 0;
M4_Max_current AT %Q* : INT := 0;
M4_Desired_dc AT %Q* : INT := 0;
// Input
Status AT %I* : BYTE;
Mode AT %I* : BYTE;
Com_State AT %I* : BYTE;
act_pos AT %I* : INT;
PH_A AT %I* : INT;
PH_B AT %I* : INT;
PH_C AT %I* : INT;
Error AT %I* : INT;
Phase_Current AT %I* : INT;
Speed AT %I* : INT;
Duty AT %I* : INT;
END_VAR]]></Declaration> END_VAR]]></Declaration>
</GVL> </GVL>
</TcPlcObject> </TcPlcObject>

View File

@ -27,6 +27,9 @@
<Compile Include="POUs\MAIN.TcPOU"> <Compile Include="POUs\MAIN.TcPOU">
<SubType>Code</SubType> <SubType>Code</SubType>
</Compile> </Compile>
<Compile Include="POUs\POU_Position_Seq.TcPOU">
<SubType>Code</SubType>
</Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="DUTs" /> <Folder Include="DUTs" />
@ -56,19 +59,19 @@
<ProjectExtensions> <ProjectExtensions>
<PlcProjectOptions> <PlcProjectOptions>
<XmlArchive> <XmlArchive>
<Data> <Data>
<o xml:space="preserve" t="OptionKey"> <o xml:space="preserve" t="OptionKey">
<v n="Name">"&lt;ProjectRoot&gt;"</v> <v n="Name">"&lt;ProjectRoot&gt;"</v>
<d n="SubKeys" t="Hashtable" /> <d n="SubKeys" t="Hashtable" />
<d n="Values" t="Hashtable" /> <d n="Values" t="Hashtable" />
</o> </o>
</Data> </Data>
<TypeList> <TypeList>
<Type n="Hashtable">System.Collections.Hashtable</Type> <Type n="Hashtable">System.Collections.Hashtable</Type>
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type> <Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
<Type n="String">System.String</Type> <Type n="String">System.String</Type>
</TypeList> </TypeList>
</XmlArchive> </XmlArchive>
</PlcProjectOptions> </PlcProjectOptions>
</ProjectExtensions> </ProjectExtensions>
</Project> </Project>

View File

@ -1,13 +1,15 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1"> <TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.6">
<POU Name="MAIN" Id="{bea1ccef-eacb-4a24-8635-6fbb784e4a5d}"> <POU Name="MAIN" Id="{bea1ccef-eacb-4a24-8635-6fbb784e4a5d}" SpecialFunc="None">
<Declaration><![CDATA[PROGRAM MAIN <Declaration><![CDATA[PROGRAM MAIN
VAR VAR
END_VAR END_VAR
]]> ]]></Declaration>
</Declaration>
<Implementation> <Implementation>
<ST><![CDATA[]]></ST> <ST><![CDATA[POU_Position_Seq();]]></ST>
</Implementation> </Implementation>
<LineIds Name="MAIN">
<LineId Id="2" Count="0" />
</LineIds>
</POU> </POU>
</TcPlcObject> </TcPlcObject>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@
<RootNamespace>TwinCAT Measurement Project1</RootNamespace> <RootNamespace>TwinCAT Measurement Project1</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Content Include="XY Scope Project.tcscopex"> <Content Include="Scope Project1.tcscopex">
<SubType>Content</SubType> <SubType>Content</SubType>
</Content> </Content>
</ItemGroup> </ItemGroup>