TwinCAT编程笔记

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

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.。

相关文档
最新文档