TwinCAT3中使用梯形图编程

目录

1、梯形图程序创建

(1)程序创建

(2)局部变量

(3)全局变量

2、LdTest_ACT1程序功能说明

(1)数值计算

(2)数值比较判断

(3)置位和复位

3、LdTest_ACT2程序功能说明

4、自定义系统变量

(1)全局变量定义

(2)Main中ST程序代码实现

5、字和位说明

6、TwinCAT中的操作符说明

(1)操作符功能说明

(2)梯形图程序中使用操作符的2种方法

7、下载链接

(1)TwinCAT编程手册

(2)测试工程


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

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Big_潘大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值