目录
1、梯形图程序创建
(1)程序创建
在Main程序中添加两个ACTION动作,然后在Main中调用
LdTest_ACT1();
LdTest_ACT2();
(2)局部变量
PROGRAM MAIN
VAR
TON_0: TON;
TON_1: TON;
TON_2: TON;
TON_3: TON;
TON_4: TON;
TON_5: TON;
TON_6: TON;
TON_7: TON;
TON_8: TON;
dTemp1: LINT;
dTemp2: LINT;
dTemp3: LINT;
dTemp4: LINT;
dTemp5: LINT;
dTemp6: LINT;
R_TRIG_0: R_TRIG;
R_TRIG_1: R_TRIG;
R_TRIG_2: R_TRIG;
R_TRIG_3: R_TRIG;
_Flash_10ms: MyFlash_FB; //10毫秒脉冲
_Flash_50ms: MyFlash_FB; //50毫秒脉冲
_Flash_100ms: MyFlash_FB; //100毫秒脉冲
_Flash_250ms: MyFlash_FB; //250毫秒脉冲
_Flash_500ms: MyFlash_FB; //100毫秒脉冲
_Flash_1000ms: MyFlash_FB; //1000毫秒脉冲
_Flash_2000ms: MyFlash_FB; //2000毫秒脉冲
END_VAR
(3)全局变量
VAR_GLOBAL
//
bg_AlwaysOn: BOOL:=TRUE; //始终ON
bg_AlwaysOff: BOOL:=FALSE; //始终OFF
bg_FirstCircleOn: BOOL:=TRUE; //第一次上电导通
//
bg_Puls_10ms: BOOL; //10毫秒通断脉冲
bg_Puls_50ms: BOOL; //50毫秒通断脉冲
bg_Puls_100ms: BOOL; //100毫秒通断脉冲
bg_Puls_250ms: BOOL; //250毫秒通断脉冲
bg_Puls_500ms: BOOL; //500毫秒通断脉冲
bg_Puls_1000ms: BOOL; //1000毫秒通断脉冲
bg_Puls_2000ms: BOOL; //2000毫秒通断脉冲
//
W1: LINT;
W2: LINT;
W3: LINT;
W4: LINT;
W5: LINT;
W6: LINT;
W7: LINT;
W8: LINT;
W9: LINT;
W10: LINT;
//
M1: LINT;
M2: LINT;
M3: LINT;
M4: LINT;
M5: LINT;
M6: LINT;
M7: LINT;
M8: LINT;
M9: LINT;
M10: LINT;
//
bg_M0: BOOL;
bg_M1: BOOL;
bg_M2: BOOL;
bg_M3: BOOL;
bg_M4: BOOL;
bg_M5: BOOL;
bg_M6: BOOL;
bg_M7: BOOL;
bg_M8: BOOL;
bg_M9: BOOL;
//
bg_M10: BOOL;
bg_M11: BOOL;
bg_M12: BOOL;
bg_M13: BOOL;
bg_M14: BOOL;
bg_M15: BOOL;
bg_M16: BOOL;
bg_M17: BOOL;
bg_M18: BOOL;
bg_M19: BOOL;
//
bg_M20: BOOL;
bg_M21: BOOL;
bg_M22: BOOL;
bg_M23: BOOL;
bg_M24: BOOL;
bg_M25: BOOL;
bg_M26: BOOL;
bg_M27: BOOL;
bg_M28: BOOL;
bg_M29: BOOL;
//
bg_M30: BOOL;
bg_M31: BOOL;
bg_M32: BOOL;
bg_M33: BOOL;
bg_M34: BOOL;
bg_M35: BOOL;
bg_M36: BOOL;
bg_M37: BOOL;
bg_M38: BOOL;
bg_M39: BOOL;
//
bg_M40: BOOL;
bg_M41: BOOL;
bg_M42: BOOL;
bg_M43: BOOL;
bg_M44: BOOL;
bg_M45: BOOL;
bg_M46: BOOL;
bg_M47: BOOL;
bg_M48: BOOL;
bg_M49: BOOL;
//
bg_M50: BOOL;
bg_M51: BOOL;
bg_M52: BOOL;
bg_M53: BOOL;
bg_M54: BOOL;
bg_M55: BOOL;
bg_M56: BOOL;
bg_M57: BOOL;
bg_M58: BOOL;
bg_M59: BOOL;
//
bg_M60: BOOL;
bg_M61: BOOL;
bg_M62: BOOL;
bg_M63: BOOL;
bg_M64: BOOL;
bg_M65: BOOL;
bg_M66: BOOL;
bg_M67: BOOL;
bg_M68: BOOL;
bg_M69: BOOL;
END_VAR
2、LdTest_ACT1程序功能说明
(1)数值计算
(2)数值比较判断
(3)置位和复位
3、LdTest_ACT2程序功能说明
使用循环左移ROL指令实现流水灯功能
4、自定义系统变量
实现类似于其它传统品牌PLC的系统变量如:第一次上电导通、常ON、常OFF以及通断脉冲变量等。
(1)全局变量定义
//
bg_AlwaysOn: BOOL:=TRUE; //始终ON
bg_AlwaysOff: BOOL:=FALSE; //始终OFF
bg_FirstCircleOn: BOOL:=TRUE; //第一次上电导通
//
bg_Puls_10ms: BOOL; //10毫秒通断脉冲
bg_Puls_50ms: BOOL; //50毫秒通断脉冲
bg_Puls_100ms: BOOL; //100毫秒通断脉冲
bg_Puls_250ms: BOOL; //250毫秒通断脉冲
bg_Puls_500ms: BOOL; //500毫秒通断脉冲
bg_Puls_1000ms: BOOL; //1000毫秒通断脉冲
bg_Puls_2000ms: BOOL; //2000毫秒通断脉冲
(2)Main中ST程序代码实现
//
_Flash_10ms(FlashTime:=T#10MS,bFlashVar=>bg_Puls_10ms); //10毫秒通断脉冲
_Flash_50ms(FlashTime:=T#50MS,bFlashVar=>bg_Puls_50ms); //50毫秒通断脉冲
_Flash_100ms(FlashTime:=T#100MS,bFlashVar=>bg_Puls_100ms); //100毫秒通断脉冲
_Flash_250ms(FlashTime:=T#250MS,bFlashVar=>bg_Puls_250ms); //250毫秒通断脉冲
_Flash_500ms(FlashTime:=T#500MS,bFlashVar=>bg_Puls_500ms); //500毫秒通断脉冲
_Flash_1000ms(FlashTime:=T#1000MS,bFlashVar=>bg_Puls_1000ms); //1000毫秒通断脉冲
_Flash_2000ms(FlashTime:=T#2000MS,bFlashVar=>bg_Puls_2000ms); //2000毫秒通断脉冲
//第一次上电导通
IF bg_FirstCircleOn THEN
bg_FirstCircleOn:=FALSE;
END_IF
5、字和位说明
譬如
(1)定义变量W1为INT,则对应的32BOOL位分别是W1.0-W1.15
(2)定义变量W2为LINT,则对应的32BOOL位分别是W2.0-W2.31
6、TwinCAT中的操作符说明
具体说明见TwinCAT编程手册
(1)操作符功能说明
(2)梯形图程序中使用操作符的2种方法
方法1,直接在工具箱中找到需要使用的功能块拖动到程序中即可。(如果工具箱中没有需要使用的功能块,则使用方法2)
方法2,在程序中鼠标右击->插入运算库,在输入助手中输入需要的功能块
如1:加功能:ADD
如2:伺服使能
TwinCAT中如何使用梯形图控制伺服,参见教程:TwinCAT3入门教程4-伺服常用功能程序实现_twincat3入门手册-CSDN博客
7、下载链接
(1)TwinCAT编程手册
https://download.csdn.net/download/panjinliang066333/89554294
(2)测试工程
https://download.csdn.net/download/panjinliang066333/89554296