- 1、本文档共108页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2_01TwinCATIEC61131-3编程要点
TwinCAT PLC ControlIEC 61131-3 编程 直接表示变量 地址可以交迭 %MB12 是%MW12 的第一个字节,也是%MD12 的第一个字节 %MX12.0 是 %MB12 的第一位 IEC 61131 变量 变量初值设定 每个变量在启动期间被赋初值 所有变量可改变默认初值 VAR a : INT := 13; b : STRING := ‘this is a string‘; c : REAL := 1.1; END_VAR IEC 61131 变量 派生数据类型变量的初值设定 结构: 用括弧和对每个成员名赋初值 VAR a : myStruct := ( status := TRUE, inputValue := 2.5 ); END_VAR IEC 61131 变量 派生数据类型变量的初值设定 数组: 使用逗号分隔设定多重初值 VAR a : ARRAY[1..10] OF INT := 1, 2, 2, 4, 5, 6, 7, 8, 9,10; END_VAR IEC 61131 变量 内部数据不存储 几个输入值 一个输出值 用户定义的函数可以用各种语言编辑代码 (除了SFC) 函数名必须是返回值的名 IEC 61131 函数 例如 FUNCTION Average : REAL (* variable declaration *) VAR_INPUT IN1, IN2 : REAL; END_VAR (* code body programmed in ST *) Average := (IN1 + IN2)/2; END_FUNCTION 返回值的 数据类型 返回值名 = 函数名 IEC 61131 函数 超载函数 一些函数可以处理不同的数据类型 (调用操作) a, b : REAL; c, d : INT; a := ABS(b); (* 用 REAL 作输入和输出 *) c := ABS(d); (* 用 INT 作输入和输出 *) IEC 61131 函数 数据类型转换函数 在不同数据类型之间需转换数值, 你必需使用转换函数 a : REAL; b : INT; b := REAL_TO_INT(a); IEC 61131 函数 标准 IEC 61131-3 函数 位组 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 IEC 61131 函数 设立输入, 输出和内部变量 运算法则建立新的输出和内部变量 参数被保持到下次执行 (在存储器中) 功能块例程是一个结构, 包含所有输入, 输出和内部变量 一个FB 允许建立多个例程 IEC 61131 功能块 在 FB 的外部只有输入, 输出和输入/输出变量传递参数 在其它FB或程序中, 以不同的编程语言使用 FB 调用 一个 FB 例程在调用的 FB/程序中是一个变量或全局变量 FB例程可以是对其它FB/程序的输入变量 IEC 61131 功能块 FUNCTION_BLOCK Counter VAR_INPUT Mode : INT; (* 0 = Reset, 1 = Count *) END_VAR VAR_OUPUT Out : INT; (* actual counter value *) END_VAR IF Mode = 0 THEN Out := 0; (* reset *) ELSIF Mode = 1 THEN Out := Out + 1; END_IF; END_FUNCTION_BLOCK 老的计数值加 1 得到新的记数值 IEC 61131 功能块 标准 IEC 61131-3 功能块 触发器 SR, RS, SEMA 沿探测 R_TRIG, F_TRIG 记数器 CTU, CTD, CTUD 定时器 TP, TON
文档评论(0)