TwinCAT编程笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TwinCAT编程笔记
1. 配置
一个配置就是一个控制系统,一个配置可以有一个或多个资源,在TwinCAT中一个或多个PLC。

2. 资源
资源就是PLC的运行核,资源包括全局变量、任务、POU(程序组织单元) 一个资源可以有一个或多个任务
3. 任务
一个资源有一个或多个任务,任务具有优先级( 0 - 3),任务调用一个或多个程序,任务决定了所关联程序的时间调度。

4. 程序
根据控制过程的需要,包含函数和功能块的一个POU,任务调用程序,程序调用函数和功能块
5. 功能块(FB)
每次被执行就是运行一段程序编码,有变量输入输出和运算法则,可以调用函数和功能块
6. 函数
被函数或功能块调用,可以调用其他函数但是不能调用功能块
7. 局部变量
在一个POU(程序、功能块、函数)中定义,只能在POU中访问
8. 全局变量
在资源(PLC运行核)中申明,每个POU可以访问
9. 直接描述变量
具有固定地址的变量
地址:输入(I), 输出(Q) , 标记(M)
类型:位 (X), 字节 (B), 字 (W) , 双字 (D) 例如: %IW12, %QX1.1, %MB5
10. 冷启动
所有变量被初始化
11. 热启动
不进行变量初始化、原值被使用
12. 限定字符
不分大小写,关键字总是大写,无国家字符
13. 标识符
第一个不能使数字,不能连续多于一个下划线
14. 关键字
关键字总是大写
15. 注释
被(*和*)框住的内容,不能放在语句中,不允许嵌套
16. 数据类型
整型:SINT (8) ,INT(16),DINT(32),LINT(64) 无符号的在前面加U,允许十进制,十六进制(16#),八进制(8#),可以用_进行单元分隔浮点:REAL(32) LREAL(64)
时间与日期: TIME(32) TIME#或T#/t#,允许溢出如25 DATE(32) DATE# D#/d# 字符串:以’’引括字符,用$表示特殊字符换行($L)
位和位组:BOOL(1) BYTE(8) WORD(16) DWORD(32) LDWORD(64)
17. 自定义数据类型
TYPE ... END_TYPE 类型重定义相当于c/c++ typedef STRUCT ... END_STRUCT 定义自己的数据结构定义枚举类型:TYPE Modes:
(Initting:=0,Runnin:=1,Idel,Reset,Faulty) END_TYPE
数组是具有相同数据类型的数值集合,允许三维数组存在 TYPE matrix:
ARRAY[1..23,0..1] OF INT END_TYPE
18. 变量
VAR
A,c,b : REAL; d,e :BOOL;
f : ARRAY[1..12] OF BOOL; END_VAR
在程序中,函数或者功能块的输入变量 VAR_INPUT A,b,c :REAL; END_VAR
输出变量: VAR_OUTPUT d,e : REAL; END_VAR
输入输出变量: 在POU内部允许更改变量 VAR_IN_OUT X :STRING; END_VAR
全局变量:允许从所有POU中读取的变量 VAR_GLOBAL var:UINT; END_VAR 变量属性:
RETAIN:断电后值被保存,TwinCAT启动后值被恢复 CONSTANT:常量值不能被修改
AT:变量被指定存储位置(固定地址) 直接表示变量:
以%开头,第二个为I/Q/M,第三个为X/B/W/D 如:%IB24, %QX1.1, %MW12
地址可以交迭,%MB12 是%MW12 的第一个字节,也是%MD12 的第一个字节 ? %MX12.0 是 %MB12 的第一位
变量初始化:每个变量在启动时被赋初值,所有变量可改变默认值 VAR
A :REAL := 12.0;
B : STRING := ‘Hello World!’; C: INT :=22; END_VAR
派生数据类型变量的初始化: 结构:用括号对每个成员赋初值 VAR
a :mystruct :=
(
Status := TRUE; InputVar := 2.5; )
END_VAR
数组:用逗号分隔设定多重初值 VAR
a :ARRAY[1..10] OF INT :=
1,2,3,4,5,6,7,8,9,0; END_VAR
19. 函数
内部数据不存储几个输入值一个输出值
用户定义的函数可以用各种语言编辑代码 (除了SFC) 函数名必须是返回值的名
超载函数
一些函数可以处理不同的数据类型(调用操作) a,b :REAL; c,d:INT;
a := ABS(b); (* 用REAL做输入输出 *) c := ABS(d); (* INT做输入输出 *) 数据类型转换函数
在不同的数据类型之间需要转换数值,你必须要用转换函数 a :REAL; b:INT;
b := REAL_TO_INT(a); 标准IEC61131函数
位组:AND,OR,XOR,NOT,SHL,SHR,ROL,ROR

学:ADD,SUB,MUL,DIV,MOD,EXPT,ABS,SQRT,LN,LOG,EXP,SIN,COS,TAN,ASIN,ACOS,ATAN 类型转换:BOOL_TO_BYTE,REAL_TO_DINT 选择:SEL,MIN,MAX,LIMIT,MUX 比
较:GT,GE,EQ,LT,LE,NE
字符串:LEN,LEFT,RIGHT,MID,CONCAT,INSERT,DELETE,REPLACE,FIND
20. 功能块
设立输入、输出和内部变量
运算法则建立新的输出和内部变量
参数被保持到下次执行(保存在存储器中)
功能块例程是一个结构,包含所有输入、输出和内部变量一个FB允许建立读个例程
在FB的外部,只有输入、输出和输入/输出变脸传递参数在其他的FB程序中,以不同的变成语言使用FB调用一个FB例程在调用的FB/程序中是一个变量或全局变量 FB例程可以使对其他FB/程序的输入变量
触发器SR, RS, SEMA 沿探测 R_TRIG, F_TRIG 记数器CTU, CTD, CTUD 定时器TP, TON, TOF, RTC
21. 程序
程序可以有输入, 输出, 局部变量和算法的程序代码部分不同于FB: 程序没有例程程序没有存储器
在程序中使用各种语言
程序由任务来调用(TwinCAT : 可由其它程序调用)
22. 任务
用任务控制执行
执行不同循环时间的程序
指派任务的优先级(要求无间断运行程序必须有最高优先级) TwinCAT:每个PLC运行核有四个任务强制优先时序 23. 编程语言
文本语言:结构文本(ST)、指令表(IL)
图形语言:功能图(FBD)、梯形图(LD)、顺序功能图(SFC) 24.
感谢您的阅读,祝您生活愉快。

相关文档
最新文档