Twincat 中如何将位变量链接到字节
最近在测试一个EtherCAT IO模块,
参考视频Ethercat总线快速入门教程——1-2TwinCAT基本操作_哔哩哔哩_bilibili
我手里是欧辰的一个模块,它的输入输出都是字节形式的

因此小改了下PLC程序
1. 在DUTs中新建了一个结构体和联合体

结构体内容
TYPE Bits8 :
STRUCT
bBit1 : BIT;
bBit2 : BIT;
bBit3 : BIT;
bBit4 : BIT;
bBit5 : BIT;
bBit6 : BIT;
bBit7 : BIT;
bBit8 : BIT;
END_STRUCT
END_TYPE
联合体内容
TYPE Bits8Union : UNION DataByte AT %Q* : BYTE; DataBits : Bits8 ; END_UNION END_TYPE
主程序内容
PROGRAM MAIN
VAR
input1 AT %I*:BYTE;
timer:TON;
output1 : Bits8Union;
state: INT := 0;
END_VAR
//-----------------------------------------
CASE state OF
0: // 输出为1,持续1500ms
output1.DataBits.bBit2 := TRUE;
timer(IN := TRUE, PT := T#1500MS);
IF timer.Q THEN
state := 1;
timer(IN := FALSE);
END_IF;
1: // 输出为0,持续500ms
output1.DataBits.bBit2 := FALSE;
timer(IN := TRUE, PT := T#500MS);
IF timer.Q THEN
state := 0;
timer(IN := FALSE);
END_IF;
END_CASE
编译后再次link就可以啦


浙公网安备 33010602011771号