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
# TcXaeShell Solution File, Format Version 11.00
# Visual Studio 15
VisualStudioVersion = 15.0.28010.2050
MinimumVisualStudioVersion = 10.0.40219.1
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"?>
<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>
<ImageData Id="1000">424dd8020000000000003600000028000000100000000e0000000100180000000000a2020000120b0000120b000000000000000000001306e31306e3190ce42b1fe62b1fe61306e31f13e5190ce42519e51306e31306e3190ce42f24e7190ce41306e31306e31306e31306e35f56ec645ced645ced4137e91f13e5473de95f57ec3227e71306e3473de95a51ec271be61306e31306e31409ca524cc68e8ad74f48c1615cc82218d03e36bf716bce746fce453dc01307ce3931ba7d78d27671d1150cb21409ca1712801b1d1d1b1d1d1b1d1d1b1d1d120b891b1d1d1b1d1d1b1d1d1b1d1d120b891b1d1d1b1d1d1b1d1d1b1d1d1712801712807f8080d4d5d5d4d5d5383939120b89545656d4d5d5d4d5d5626464130c89292b2bd4d5d5d4d5d56264641915801712804647471b1d1daaaaaad4d5d5130e82383939292b2b717272d4d5d5151183d4d5d57f80801b1d1d7172721e1c81191580464747d4d5d5d4d5d51b1d1d19158a292b2bd4d5d5d4d5d5292b2b1b1b8ad4d5d56264641b1d1d1b1d1d2427821e1d81d4d5d54647476264643839391e208bd4d5d57f8080464747545656242a8bd4d5d59b9c9c292b2baaaaaa2d3683252882464747d4d5d5d4d5d51b1d1d272d85292b2bd4d5d5d4d5d5292b2b2e37861b1d1dd4d5d5d4d5d5464747394484323bb52324812122822426822526824554c0323883292b822a2d83353c84424cbf3238843940842e32834853865d6ebb5262eb3e43e83334e74147e94349e9535feb4d56ea5662eb484dea545deb636fed545aea5a63ec6671ed8ca0f290a5f2748aef6b7bee5d68ec6874ed788aef8397f17684ef7986ef8c9ff2818ff1818ef08e9df18a97f18791f19ba9f3b0c0f691a4f291a2f28390f192a1f29cacf3a3b3f498a6f3a4b3f4aebdf5b0bef59ea8f3a3adf4bbc7f7c4d1f8cad7f8ced9f9b4c4f6b8c8f6acb8f59aa3f3b6c1f6c5d2f8c2cdf8ccd7f9d2ddf9d5e0fad2daf9d5dcf9dfe7fbe2e9fbe5ebfbe8eefb0000</ImageData>
</ImageDatas>
@ -19,88 +19,419 @@
<Vars VarGrpType="1">
<Name>PlcTask Inputs</Name>
<Var>
<Name>GVL_motor_data.Status</Name>
<Comment><![CDATA[ Input ]]></Comment>
<Name>GVL_motor_data.M1_Status</Name>
<Comment><![CDATA[ Motor 1 //]]></Comment>
<Type>BYTE</Type>
</Var>
<Var>
<Name>GVL_motor_data.Mode</Name>
<Name>GVL_motor_data.M1_Mode</Name>
<Type>BYTE</Type>
</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>
</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>
</Var>
<Var>
<Name>GVL_motor_data.PH_A</Name>
<Name>GVL_motor_data.M2_Joint_abs_position</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.PH_B</Name>
<Name>GVL_motor_data.M2_Motor_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.PH_C</Name>
<Name>GVL_motor_data.M2_Motor_current_bus</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.Error</Name>
<Name>GVL_motor_data.M2_Motor_currentPhA</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.Phase_Current</Name>
<Name>GVL_motor_data.M2_Motor_currentPhB</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.Speed</Name>
<Name>GVL_motor_data.M2_Motor_currentPhC</Name>
<Type>INT</Type>
</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>
</Var>
</Vars>
<Vars VarGrpType="2" AreaNo="1">
<Name>PlcTask Outputs</Name>
<Var>
<Name>GVL_motor_data.op_Mode</Name>
<Comment><![CDATA[ Output ]]></Comment>
<Name>GVL_motor_data.M1_Control_mode</Name>
<Comment><![CDATA[Read From Ecat Total (XX Bytes)
QSPI_rx_buffer
Motor 1 //]]></Comment>
<Type>BYTE</Type>
</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>
</Var>
<Var>
<Name>GVL_motor_data.des_max_current</Name>
<Name>GVL_motor_data.M1_Desired_speed</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.des_current</Name>
<Name>GVL_motor_data.M1_Desired_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.des_speed</Name>
<Name>GVL_motor_data.M1_Max_pos</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.I_kp</Name>
<Name>GVL_motor_data.M1_Max_velocity</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.I_ki</Name>
<Name>GVL_motor_data.M1_Max_current</Name>
<Type>INT</Type>
</Var>
<Var>
<Name>GVL_motor_data.V_kp</Name>
<Name>GVL_motor_data.M1_Desired_dc</Name>
<Type>INT</Type>
</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>
</Var>
</Vars>
@ -122,13 +453,13 @@
</Project>
</Plc>
<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>
<AddressInfo>
<Pnp>
<DeviceDesc>Ethernet (TwinCAT-Intel PCI Ethernet Adapter (Gigab</DeviceDesc>
<DeviceName>\DEVICE\{B319FB6B-ED15-445B-9318-290BECEEFA76}</DeviceName>
<DeviceData>4c5262a1d9ac</DeviceData>
<DeviceDesc>Ethernet (Realtek PCIe GbE Family Controller)</DeviceDesc>
<DeviceName>\DEVICE\{7A5E866B-9C27-4C9A-AB1A-3FD2FE6A43CC}</DeviceName>
<DeviceData>b025aa33135b</DeviceData>
</Pnp>
</AddressInfo>
<Image Id="1" AddrType="9" ImageType="3">
@ -143,7 +474,7 @@
<Fmmu>0000000000000000001100020100000001000000000000000000000000000000</Fmmu>
<Fmmu>0000000000000000001800010100000002000000000000000000000000000000</Fmmu>
<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>
</Entry>
<Entry Name="M1__mode" Index="#x3002" Sub="#x01">
@ -349,13 +680,13 @@
</Entry>
</Pdo>
<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>
</Entry>
<Entry Name="M1__control_set" Index="#x3102" Sub="#x01">
<Entry Name="M1__control_set" Index="#x3102" Sub="#x01" Flags="#x00008020">
<Type>BYTE</Type>
</Entry>
<Entry Name="M1__desired_position" Index="#x3103" Sub="#x01">
<Entry Name="M1__desired_position" Index="#x3103" Sub="#x01" Flags="#x00008020">
<Type>INT</Type>
</Entry>
<Entry Name="M1__desired_speed" Index="#x3104" Sub="#x01">
@ -512,4 +843,33 @@
</Device>
</Io>
</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>

View File

@ -1,31 +1,132 @@
<?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}">
<Declaration><![CDATA[{attribute 'qualified_only'}
VAR_GLOBAL
// Output
op_Mode AT %Q* : BYTE := 1;
des_pos AT %Q* : INT;
des_max_current AT %Q* : INT := 100;
des_current AT %Q* : INT := 100;
des_speed AT %Q* : INT := 1000;
I_kp AT %Q* : INT := 1;
I_ki AT %Q* : INT := 10;
V_kp AT %Q* : INT := 1;
V_kd AT %Q* : INT := 10;
// Motor 1 //
M1_Status AT %I* : BYTE;
M1_Mode AT %I* : BYTE;
M1_Joint_rel_position AT %I* : INT;
M1_Joint_abs_position AT %I* : INT;
M1_Motor_speed AT %I* : INT;
M1_Motor_current_bus AT %I* : INT;
M1_Motor_currentPhA AT %I* : INT;
M1_Motor_currentPhB AT %I* : INT;
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>
</GVL>
</TcPlcObject>

View File

@ -27,6 +27,9 @@
<Compile Include="POUs\MAIN.TcPOU">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\POU_Position_Seq.TcPOU">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Folder Include="DUTs" />

View File

@ -1,13 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="MAIN" Id="{bea1ccef-eacb-4a24-8635-6fbb784e4a5d}">
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1" ProductVersion="3.1.4024.6">
<POU Name="MAIN" Id="{bea1ccef-eacb-4a24-8635-6fbb784e4a5d}" SpecialFunc="None">
<Declaration><![CDATA[PROGRAM MAIN
VAR
END_VAR
]]>
</Declaration>
]]></Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
<ST><![CDATA[POU_Position_Seq();]]></ST>
</Implementation>
<LineIds Name="MAIN">
<LineId Id="2" Count="0" />
</LineIds>
</POU>
</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>
</PropertyGroup>
<ItemGroup>
<Content Include="XY Scope Project.tcscopex">
<Content Include="Scope Project1.tcscopex">
<SubType>Content</SubType>
</Content>
</ItemGroup>