我的410p 主板烧了,苹果6p换主板多少钱要多少钱

 上传我的文档
 下载
 收藏
各专业学习资料 毕业设计论文,课程设计,设计方案,营销策划资料等等
 下载此文档
正在努力加载中...
CoDeSys2.3可视化编程
下载积分:990
内容提示:CoDeSys2.3可视化编程
文档格式:PDF|
浏览次数:72|
上传日期: 20:49:56|
文档星级:
全文阅读已结束,如果下载本文需要使用
 990 积分
下载此文档
该用户还上传了这些文档
CoDeSys2.3可视化编程
官方公共微信您的访问出错了(404错误)
很抱歉,您要访问的页面不存在。
1、请检查您输入的地址是否正确。
进行查找。
3、感谢您使用本站,3秒后自动跳转至网站首页CoDeSys_Visu_V23_CH 显示屏编程手册_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
CoDeSys_Visu_V23_CH 显示屏编程手册
上传于|0|0|文档简介
&&codesys编程应用
大小:2.59MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢您的访问出错了(404错误)
很抱歉,您要访问的页面不存在。
1、请检查您输入的地址是否正确。
进行查找。
3、感谢您使用本站,1秒后自动跳转CodeSys Programming Manual
技术资料文档编号:AD220002AC500 可升级的控制器 灵活的自动化控制系统CodeSys 指令手册???? 声明(1) 在实际的系统构建时,请先确认系统组成设备、装置,如使用过程中对额定 值、性能留有余量,以及万一发生故障时将危险降到最低的安全电路等。 (2) 为了安全使用系统, 请获取组成系统的各个设备、 装置的指南及安装说明书, 在确认好包括“安全注意事项”、“安全要点”等内容后再使用。 (3) 本文件所属的产品/系统只允许由具备相关工作经验要求的合格人员进行操 作,确认适合系统的规格、法规及规定。 (4) 未经ABB公司许可,严禁擅自对本资料的一部分或全部内容进行篡改及散 发。 (5) 本资料的记录内容为测试指导, 在应用过程, 请根据现场实际情况适当调整, 或者咨询ABB技术支持人员。 (6) 我们已对文档中所述内容与硬件和软件的一致性作过检查。 然而不排除存在 偏差的可能性,因此我们不保证文档中所述内容与硬件和软件完全一致。文档中的 数据都按规定经过检测,必要的修正值包含在下一版本中。 (7) 本资料的记录内容若有改版,恕不另行通知。????北京 ABB电气传动系统有限公司 PLC 技术部1技术资料 AC500/Issue: 09.2012 目 录目 录 ..................................................................................................................... 1 第 1 章 CODESYS 指令系统概述 ......................................................................... 61.1 指令分类........................................................................................................................................... 6 1.2 指令库............................................................................................................................................... 6 1.3 库文件管理器................................................................................................................................... 6第 2 章 基本指令 ................................................................................................. 102.1 算术运算指令................................................................................................................................. 10 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 ADD――加法指令 ........................................................................................................... 10 MUL――乘法指令 ........................................................................................................... 10 SUB――减法指令 ............................................................................................................ 11 DIV――除法指令............................................................................................................. 12 MOD――取余指令 .......................................................................................................... 122.2 赋值指令......................................................................................................................................... 13 2.3 逻辑运算指令................................................................................................................................. 14 2.3.1 2.3.2 2.3.3 2.3.4 2.4.1 2.4.2 2.4.3 2.4.4 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.6.6 AND――与指令 ............................................................................................................... 14 OR――或指令 .................................................................................................................. 14 XOR――异或指令 ........................................................................................................... 15 NOT――取非指令............................................................................................................ 15 SHL――左移指令 ............................................................................................................ 16 SHR――右移指令 ............................................................................................................ 16 ROL――循环左移指令 .................................................................................................... 17 ROR――循环右移指令.................................................................................................... 18 SEL――二选一指令......................................................................................................... 18 MAX――取最大值指令 .................................................................................................. 19 MIN――取最小值指令 .................................................................................................... 20 LIMIT――极限值指令..................................................................................................... 20 MUX――多选一指令 ...................................................................................................... 21 GT――大于指令 .............................................................................................................. 22 LT――小于指令 ............................................................................................................... 23 GE――大于等于指令 ...................................................................................................... 23 LE――小于等于指令 ....................................................................................................... 24 EQ――等于指令 .............................................................................................................. 25 NE――不等于指令 .......................................................................................................... 25电气传动系统有限公司 PLC 技术部 2 技术资料 AC500/Issue: 09.20122.4 移位指令......................................................................................................................................... 162.5 选择指令......................................................................................................................................... 182.6 比较指令......................................................................................................................................... 22????北京 ABB 2.7 数据类型转换指令......................................................................................................................... 26 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.15 2.7.16 2.7.17 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.8 2.8.9 2.8.10 2.8.11 2.8.12 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 BOOL_TO_&TYPE&――布尔类型转换指令 ................................................................. 28 BYTE_TO_&TYPE&――字节类型转换指令 .................................................................. 29 WORD_TO_&TYPE&――字类型转换指令 .................................................................... 31 DWORD_TO_&TYPE&――双字类型转换指令 ............................................................. 33 SINT_TO_&TYPE&――短整型转换指令 ....................................................................... 34 USINT_TO_&TYPE&――无符号短整型转换指令 ........................................................ 35 INT_TO_&TYPE&――整数类型转换指令...................................................................... 35 UINT_TO_&TYPE&――无符号整数类型转换指令 ....................................................... 36 DINT_TO_&TYPE&――双整数类型转换指令............................................................... 37 UDINT_TO_&TYPE&――无符号双整数类型转换指令 ................................................ 38 REAL_TO_&TYPE&――实数类型转换指令 .................................................................. 40 TIME_TO_&TYPE&――时间类型转换指令 .................................................................. 40 DATE_TO_&TYPE&――日期类型转换指令 .................................................................. 41 DT_TO_&TYPE&――日期时间类型转换指令 ............................................................... 42 TOD_TO_&TYPE&――时间类型转换指令 .................................................................... 43 STRING_TO_&TYPE&――字符类型转换指令 .............................................................. 44 TRUNC――截短转换指令 .............................................................................................. 45 ABS――绝对值指令 ........................................................................................................ 46 SQRT――平方根指令 ...................................................................................................... 47 LN――自然对数指令 ...................................................................................................... 47 LOG――常用对数指令.................................................................................................... 48 EXP――指数指令 ............................................................................................................ 48 SIN――正弦指令 ............................................................................................................. 49 COS――余弦指令 ............................................................................................................ 49 TAN――正切指令 ............................................................................................................ 50 ASIN――反正弦指令 ...................................................................................................... 50 ACOS――反余弦指令 ..................................................................................................... 51 ATAN――反正切指令 ..................................................................................................... 51 EXPT――幂指令 .............................................................................................................. 52 ADR――取地址指令 ....................................................................................................... 53 ^――取地址内容指令 ...................................................................................................... 53 BITADR――位地址指令 ................................................................................................. 54 INDEXOF――索引指令 .................................................................................................. 55 SIZEOF――数据类型大小指令 ...................................................................................... 552.8 初等数学运算指令......................................................................................................................... 462.9 地址运算指令................................................................................................................................. 532.10 调用指令....................................................................................................................................... 56 2.11 初始化操作指令........................................................................................................................... 56 2.12 字符串处理指令(Standard.lib) ............................................................................................. 57 2.12.1 LEN――取字符串长度指令 ............................................................................................ 57电气传动系统有限公司 PLC 技术部 3 技术资料 AC500/Issue: 09.2012????北京 ABB 2.12.2 2.12.3 2.12.4 2.12.5 2.12.6 2.12.7 2.12.8 2.12.9 2.13.1 2.13.2 2.14.1 2.14.2 2.14.3 2.14.4 2.15.1 2.15.2 2.15.3 2.15.4 2.15.5 2.16.1 2.16.2 2.16.3 2.16.4 2.17.1 2.17.2 2.18.1 2.18.2 2.18.3 2.19.1 2.19.2 2.20.1 2.20.2LEFT――左边取字符串指令 .......................................................................................... 58 RIGHT――右边取字符串指令........................................................................................ 58 MID――中间取字符串指令 ............................................................................................ 59 CONCAT――合并字符串指令 ........................................................................................ 59 INSERT――插入字符串指令 .......................................................................................... 60 DELETE――删除字符指令 ............................................................................................. 60 REPLACE――替换字符串指令 ...................................................................................... 61 FIND――查找字符串指令 .............................................................................................. 62 BCD_TO_INT――BCD 码转整型指令........................................................................... 63 INT_TO_BCD――整型转 BCD 码指令.......................................................................... 64 EXTRACT――位提取指令 ............................................................................................. 65 PACK――位整合指令 ..................................................................................................... 65 PUTBIT――位赋值指令 .................................................................................................. 66 UNPACK――位拆分 ........................................................................................................ 67 DERIVATIVE――微分..................................................................................................... 69 INTEGRAL――积分 ........................................................................................................ 70 STATISTICS_INT――整型统计 ...................................................................................... 71 STATISTICS_REAL――实型统计 .................................................................................. 72 VARIANCE――平方偏差................................................................................................ 74 P――比例控制器.............................................................................................................. 75 PD――比例微分控制器 ................................................................................................... 76 PID――比例积分微分控制器 ......................................................................................... 78 PID_FIXCYCLE――比例积分微分控制器 .................................................................... 80 BLINK――脉冲信号发生器............................................................................................ 82 GEN――典型周期信号发生器........................................................................................ 83 CHARCURVE――特征曲线 ........................................................................................... 86 RAMP_INT――整型限速 ................................................................................................ 87 RAMP_REAL――实型限速 ............................................................................................ 89 HYSTERESIS――滞后 .................................................................................................... 89 LIMITALARM――上下限报警....................................................................................... 91 SR――置位优先双稳态器 ............................................................................................... 93 RS――复位优先双稳态器 ............................................................................................... 93电气传动系统有限公司 PLC 技术部 4 技术资料 AC500/Issue: 09.20122.13 BCD 码转换指令(Util.lib) ...................................................................................................... 622.14 位/字节操作指令(Util.lib) ...................................................................................................... 652.15 高等数学运算指令(Util.lib) ................................................................................................... 692.16 控制器指令(Util.lib) ............................................................................................................... 752.17 信号发生器指令(Util.lib) ....................................................................................................... 822.18 函数操纵器指令(Util.lib) ....................................................................................................... 862.19 模拟量处理指令(Util.lib) ....................................................................................................... 892.20 双稳态指令(Standard.lib) ..................................................................................................... 93????北京 ABB 2.21 触发器指令(Standard.lib) ..................................................................................................... 94 2.21.1 2.21.2 2.22.1 2.22.2 2.22.3 2.23.1 2.23.2 2.23.3 2.23.4 R_TRIG――上升沿检测触发器 ...................................................................................... 94 F_TRIG――下降沿检测触发器 ...................................................................................... 95 CTU――递增计数器 ........................................................................................................ 96 CTD――递减计数器 ........................................................................................................ 97 CTUD――递增递减计数器 ............................................................................................. 98 TP――普通定时器 ......................................................................................................... 100 TON――通电延时定时器.............................................................................................. 101 TOF――断电延时定时器 .............................................................................................. 102 RTC――实时时钟 .......................................................................................................... 1032.22 计数器(Standard.lib) ............................................................................................................. 962.23 定时器(Standard.lib) ............................................................................................................. 99附录 A ............................................................................................................... 105? ? A.1 指令速查表 .................................................................................................................... 105 A.2 IEC 标准指令表............................................................................................................ 107????北京 ABB电气传动系统有限公司 PLC 技术部5技术资料 AC500/Issue: 09.2012 第1章CoDeSys 指令系统概述可编程控制系统中,使 CPU 完成某种操作或实现某种功能的命令及多个命令的组合称为指 令,指令的集合称为指令系统。1.1 指令分类CoDeSys 指令安照实现方式的不同分为功能和功能块两类。 以功能方式实现的指令 (以 FUN 标注),在使用的时候无需声明。以功能块方式实现的指令(以 FB 标注),在使用的时候需声 明实例名。常用基本指令的实现方式可参考下表。 算术运算指令(如 ADD 加法指令) 赋值指令(MOVE 赋值指令) 逻辑运算指令(如 AND 与指令) 移位指令(如 SHL 左移指令) 常用功能指令 选择指令(如 MAX 取最大值指令) 比较指令(如 GT 大于指令) 类型转换指令(如 REAL_TO_&TYPE&实数类型转换指令) 初等数学运算指令(如 ABS 绝对值指令) 地址运算指令(如 ADR 取地址指令) 双稳态指令(如 SR 置位优先双稳态器) 触发器(如 R_TRIG 上升沿检测触发器) 计数器(如 CTU 递增计数器) 常用功能块指令 定时器(如 TON 通电延时定时器) 信号发生器指令(如 BLINK 脉冲信号发生器) 高等数学运算指令(如 DERIVATIVE 微分) 控制器指令(如 PID 比例积分微分控制器)1.2 指令库库是指令的集合,所有的库文件为“库名.lib”,例如标准库(Standard.lib)、应用库(Util.lib)等。 建立工程时有些库文件会自动加载到工程当中(如标准库(Standard.lib)及与硬件配置对应的应用 库),可直接调用。而附加库文件则需要用户手动添加后才可调用。1.3 库文件管理器CoDeSys 中通过库文件管理器来管理库文件,库文件管理器窗口如下图所示。????北京 ABB电气传动系统有限公司 PLC 技术部6技术资料 AC500/Issue: 09.2012 库文件管理器窗口分为“库列表”、“指令”、“变量声明”和“指令图形”这 4 部分。 ? 库列表 列出当前工程中添加的所有库文件名。 ? 指令 列出该库文件中包含的指令并按类分别列出。 ? 变量声明 列出所选指令的变量声明。 ? 指令图形 显示所选指令的图形,左边为输入端,右边为输出端。 1. 打开库管理器 ? 点击编程界面菜单拦的“窗口(W)”,鼠标左键点击“库文件管理器(L)”,如下 图。?点击对象管理器中资源”,打开资源窗口,再双击“库文件管理器”,如下图。????北京 ABB电气传动系统有限公司 PLC 技术部7技术资料 AC500/Issue: 09.2012 2. 指令库的添加 当库列表区的库文件已不能满足目前的编程需要时,则需要添加库。 ? 在库文件管理器窗口的库列表位置选择鼠标右键菜单命令“添加库”,如下图。?选择所需要的库文件,点击“Open”。 不论哪种指令库,只需要打开对应的*.lib 文 件即可。????北京 ABB电气传动系统有限公司 PLC 技术部8技术资料 AC500/Issue: 09.2012 注 意凡是添加到库文件管理器的库都会占用用户程序空间,所以建议用户只添加所使 用的库。3. 删除库 选中库文件,选择鼠标右键菜单命令“删除”,即可从工程和库文件管理器中删除已添加的 库。????北京 ABB电气传动系统有限公司 PLC 技术部9技术资料 AC500/Issue: 09.2012 第2章基本指令2.1 算术运算指令2.1.1? ?ADD――加法指令功能:两个(或者多个)变量或常量相加。 输入/输出数据类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、 UDINT、REAL、TIME。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=7+2+4+7; LD 7 2,4,7 Var1(*结果 Var1 为 20*)指令列表(IL)ADD ST(*结果 Var1 为 20*)功能块(FBD)提示: ? TIME 型量也可以使用加法功能, 两个 TIME 型量相加得到一个新的时间量。 例如: t#45s + t#50s = t#1m35 s。 ? 被选择的输出数据类型应可以存储输出结果,否则可能引起数据错误。MUL、SUB、DIV 指 令同样。2.1.2? ?MUL――乘法指令功能:两个(或者多个)变量或常量相乘。 输入/输出数据类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、 UDINT、REAL。指令使用举例????北京 ABB电气传动系统有限公司 PLC 技术部10技术资料 AC500/Issue: 09.2012 变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=7*2*4*7; LD 7 2,4,7 Var1(*结果 Var1 为 392*)指令列表(IL)MUL ST(*结果 Var1 为 392*)功能块(FBD)2.1.3? ?SUB――减法指令功能:两个变量或常量相减。 输入/输出数据类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、 UDINT、REAL、TIME、TOD。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)Var1:=7-2; LD SUB ST 7 2 Var1(*结果 Var1 为 5*)(*结果 Var1 为 5*)功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部11技术资料 AC500/Issue: 09.2012 提示: ? TIME 型量也可以使用减法功能,两个 TIME 型量相减得到一个新的时间量。例如:t#1m35s t#50s = t#45s ,但时间结果不能有负值。 ? TOD 型量也可以使用减法功能,两个 TOD 型量相减得到一个新的 TIME 型数据,例如: TOD#23:40:30- TOD#00:30:20=T#ms ,但时间结果不能有负值。2.1.4? ?DIV――除法指令功能:变量或常量相除。 输入/输出数据类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、 UDINT、REAL。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=8/2; LD 8 2 Var1(*结果 Var1 为 4*)指令列表(IL)DIV ST(*结果 Var1 为 4*)功能块(FBD)提示: ? 在工程中使用 DIV 指令时,可使用 CheckDivByte 、 CheckDivWord 、 CheckDivDWord 和 CheckDivReal 等指令(见 4.15 节)检查除数是否为零,避免了除数为零的现象。2.1.5? ?MOD――取余指令功能:变量或常量相除取余,是一个整数。 输入/输出数据类型:BYTE、WORD、DWORD、SINT、USINT、INT、UINT、DINT、 UDINT。????北京 ABB电气传动系统有限公司 PLC 技术部12技术资料 AC500/Issue: 09.2012 指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=9 MOD 2; LD 9 2 Var1(*结果 Var1 为 1*)指令列表(IL)MOD ST(*结果 Var1 为 1*)功能块(FBD)2.2 赋值指令? ? ? MOVE―赋值指令 功能:将一个常量或者变量的值赋给另外一个变量。 输入/输出数据类型: BYTE、 WORD、 DWORD、 SINT、 USINT、 INT、 UINT、 DINT、 UDINT、REAL、TIME、DT、BOOL、STRING、ARRAY。 指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=100; LD 100 Var1(*结果 Var1 为 100*)指令列表(IL)MOVE ST (*结果 Var1 为 100*)功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部13技术资料 AC500/Issue: 09.2012 2.3 逻辑运算指令2.3.1? ?AND――与指令功能:变量或常量的相与运算。 输入/输出数据类型:BOOL、BYTE、WORD 和 DWORD。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=2# AND 2#; (*结果 Var1 为 2#*) LD 2## Var1 (*结果 Var1 为 2#*)指令列表(IL)AND ST功能块(FBD)2.3.2? ?OR――或指令功能:变量或常量的相或运算。 输入/输出数据类型:BOOL、BYTE、WORD 和 DWORD。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=2# OR 2# ; (*结果 Var1 为 2#*)????北京 ABB电气传动系统有限公司 PLC 技术部14技术资料 AC500/Issue: 09.2012 LD 指令列表(IL) OR ST2## Var1 (*结果 Var1 为 2#*)功能块(FBD)2.3.3? ?XOR――异或指令功能:变量或常量的异或运算。 输入/输出数据类型:BOOL、BYTE、WORD 和 DWORD。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=2# XOR 2# ; (*结果 Var1 为 2#*) LD 2## Var1 (*结果 Var1 为 2#*)指令列表(IL)XOR ST功能块(FBD)2.3.4? ?NOT――取非指令功能:变量或常量的取非运算, 逐位取非。 输入/输出数据类型:BOOL、BYTE、WORD 和 DWORD。指令使用举例变量定义编程语言程序????北京 ABB电气传动系统有限公司 PLC 技术部15技术资料 AC500/Issue: 09.2012 梯形图(LD) Var1:= NOT 2# ; (*结果 Var1 为 2#*) LD 指令列表(IL) NOT ST 功能块(FBD) Var1 (*结果 Var1 为 2#*) 2#结构化文本(ST)2.4 移位指令2.4.1? ?SHL――左移指令功能:对操作数进行按位左移,左边移出的位不作处理,右边自动补 0。 输入/输出数据类型:BYTE、INT、WORD、DWORD、SINT、UINT。指令使用举例变量定义编程语言程序梯形图(LD)Var1:=SHL(16#45,2); 结构化文本(ST) Var2:=SHL(16#45,2);(*结果 Var1 为 16#14*) (*结果 Var2 为 16#0114*)注意:上面例子中,虽然输入变量的值一样,但因为输出数据类型的大小不 同,所以得到的结果 Var1 和 Var2 不同。 LD 16#45 2 Var1 (*结果 Var1 为 16#14*)指令列表(IL)SHL ST功能块(FBD)2.4.2?SHR――右移指令功能:对操作数进行按位右移,右边移出的位不作处理,左边自动补 0。电气传动系统有限公司 PLC 技术部 16 技术资料 AC500/Issue: 09.2012????北京 ABB ?输入/输出数据类型:BYTE、INT、WORD、DWORD、SINT、UINT。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=SHR(16#45,2); Var2:=SHR(16#45,2); LD 16#45 2 Var1 SHR ST(*结果 Var1 为 16#11*) (*结果 Var2 为 16#0011*)指令列表(IL)(*结果 Var1 为 16#11*)功能块(FBD)2.4.3? ?ROL――循环左移指令功能:对操作数进行按位循环左移,左边移出的位直接补充到右边最低位。 输入/输出数据类型:BYTE、INT、WORD、DWORD、SINT、UINT。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=ROL(16#45,2); (*结果 Var1 为 16#15*) Var2:= ROL (16#45,2); (*结果 Var2 为 16#0114*) 注意:在循环左移过程中,虽然输入变量的值一样,但因为输出数据类型的 大小不同,所以得到的结果 Var1 和 Var2 不同。 LD ROL 16#45 2指令列表(IL)????北京 ABB电气传动系统有限公司 PLC 技术部17技术资料 AC500/Issue: 09.2012 ST 功能块(FBD)Var1(*结果 Var1 为 16#15*)2.4.4? ?ROR――循环右移指令功能:对操作数进行按位循环右移,右边移出的位直接补充到左边最高位。 输入/输出数据类型:BYTE、INT、WORD、DWORD、SINT、UINT。指令使用举例变量定义编程语言程序梯形图(LD)Var1:=ROR(16#45,2) 结构化文本(ST) Var2:= ROR (16#45,2)(*结果 Var1 为 16#51*) (*结果 Var2 为 16#4011*)注意:在循环右移过程中,虽然输入变量的值一样,但因为输出数据类 型的大小不同,所以得到的结果 Var1 和 Var2 不同。 LD 16#45 2 Var1 (*结果 Var1 为 16#51*)指令列表(IL)ROR ST功能块(FBD)2.5 选择指令所有的选择指令在执行时均可以带有变量。为了能够更加清楚地说明问题,以下各例只使 用常量。被选择的输入数据类型存储长度应不大于输出类型存储长度。2.5.1? ? ?SEL――二选一指令功能:通过选择开关在两个输入数据中选择一个作为输出,选择开关为 FALSE 时输 出为第一个输入数据,选择开关为 TRUE 时输出为第二个输入数据。 指令格式:OUT := SEL(G, IN0, IN1),其中 G 为选择开关,IN0 和 IN1 分别为第一个 输入数据和第二个输入数据。 输入/输出数据类型:电气传动系统有限公司 PLC 技术部 18 技术资料 AC500/Issue: 09.2012????北京 ABB ?G 必须是 BOOL 类型,IN0、IN1 和输出数据可以是任意数据类型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=SEL(TRUE,3,4); (*结果 Var1 为 4 *) LD SEL ST LD SEL ST TRUE 2,6 Var1 FALSE 2,6 Var2指令列表(IL)(*结果 Var1 为 6*)(*结果 Var2 为 2*)功能块(FBD)2.5.2? ? ?MAX――取最大值指令功能:在两个输入数据中选择最大值作为输出。 指令格式:OUT:=MAX(IN0, IN1),其中 IN0 和 IN1 分别为第 1 个输入数据和第 2 个 输入数据,OUT 是输出数据。 输入/输出数据类型:IN0, IN1 和 OUT 可以是任意数据类型。指令使用举例变量定义编程语言程序梯形图(LD)????北京 ABB电气传动系统有限公司 PLC 技术部19技术资料 AC500/Issue: 09.2012 结构化文本(ST)Var1:=MAX(90,60);(*结果 Var1 为 90 *) (*结果 Var2 为 90 *)Var2:=MAX(40,MAX(90,60)); LD MAX 90 40 70 60 Var1指令列表(IL)MAX MAX ST(*结果 Var1 为 90*)功能块(FBD)2.5.3? ? ?MIN――取最小值指令功能:在两个输入数据中选择最小值作为输出。 指令格式:OUT:=MIN(IN0, IN1),其中 IN0 和 IN1 分别为第 1 个输入数据和第 2 个 输入数据,OUT 是输出数据。 输入/输出数据类型:IN0, IN1 和 OUT 可以是任意数据类型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)Var1:=MIN(90,30); Var2:=MIN(MIN(90,30),60); LD MIN 90 30 40 70 Var1(*结果 Var1 为 30 *) (*结果 Var2 为 30 *)指令列表(IL)MIN MIN ST(*结果 Var1 为 30*)功能块(FBD)2.5.4?LIMIT――极限值指令功能:判断输入数据是否在最小值和最大值之间,若输入数据在二者之间,则直接把????北京 ABB电气传动系统有限公司 PLC 技术部20技术资料 AC500/Issue: 09.2012 输入数据作为输出数据进行输出。若输入数据大于最大值,则把最大值作为输出值。 若输入数据小于最小值,则把最小值作为输出值。 ? ? 指令格式: OUT := LIMIT(Min, IN, Max) 输入/输出数据类型:IN 和 OUT 可以是任意数据类型。指令使用举例变量定义编程语言程序梯形图(LD)(*11 为输入数据,5 为最小值,10 为最大值*) 结构化文本(ST) Var1:=LIMIT(30,90,80); LD 指令列表(IL) LIMIT ST 90 30,80 Var1 (*结果 Var1 为 80*) (*结果 Var1 为 80 *)功能块(FBD) (*11 为输入数据,5 为最小值,10 为最大值*)2.5.5? ? ?MUX――多选一指令功能:通过控制数在多个输入数据中选择一个作为输出。 指令格式: OUT:=MUX(K,IN0,…,INn),其中 K 为控制数,IN0,…,INn 为输入数据, OUT 为输出结果。控制数为 K 时选择第 INk 个输入数据作为输出。 输入/输出数据类型:IN0,…, INn 和 OUT 可以是任意数据类型,K 必须是 BYTE、 WORD、DWORD、SINT、USINT、INT、UINT、DINT 或 UDINT。指令使用举例变量定义编程语言程序????北京 ABB电气传动系统有限公司 PLC 技术部21技术资料 AC500/Issue: 09.2012 梯形图(LD)结构化文本(ST) 指令列表(IL)(*2 为控制数据,对应于 30, 所以输出 30 *) Var1:=MUX(0,30,40,50,60,70,80);(*结果 Var1 为 30*) LD MUX ST 0 30,40,50,60,70,80 Var1 (*结果 Var1 为 30*)功能块(FBD)(*2 为控制数据,对应于 30,所以结果为 30*)2.6 比较指令所有的比较指令在执行时均可以带有变量。为了能够更加清楚地说明问题,以下各例只使 用常量。2.6.1? ? ? ?GT――大于指令功能:判断两个操作数的大小,当第一个数大于第二个数时输出 TRUE,否则输出为 FALSE。 输入/输出数据类型: 输入数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、 DINT、UDINT、REAL、TIME、DATE、TOD、DT 和 STRING; 输出数据类型:BOOL。指令使用举例变量定义编程语言程序梯形图(LD) (*结果 Var1 为 FALSE*) 结构化文本(ST) 指令列表(IL) Var1:=20&30; LD 20????北京 ABB电气传动系统有限公司 PLC 技术部22技术资料 AC500/Issue: 09.2012 GT ST30 Var1 (*结果 Var1 为 FALSE*)功能块(FBD) (*结果 Var1 为 FALSE*)2.6.2? ? ? ?LT――小于指令功能:判断两个操作数的大小,当第一个数小于第二个数时返回 TRUE,否则结果为 FALSE。 输入/输出数据类型: 输入数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、 DINT、UDINT、REAL、TIME、DATE、TOD、DT 和 STRING; 输出数据类型:BOOL。指令使用举例变量定义编程语言程序梯形图(LD) (*结果 Var1 为 TRUE*) 结构化文本(ST) VAR1:=20&30; LD 指令列表(IL) LT ST 20 30 Var1 (*结果 Var1 为 TRUE*) (*结果 Var1 为 TRUE*)功能块(FBD) (*结果 Var1 为 TRUE*)2.6.3? ? ? ?GE――大于等于指令功能:判断两个操作数的大小,当第一个数大于等于第二个数时返回 TRUE,否则结 果为 FALSE。 输入/输出数据类型: 输入数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、 DINT、UDINT、REAL、TIME、DATE、TOD、DT 和 STRING; 输出数据类型:BOOL。指令使用举例????北京 ABB电气传动系统有限公司 PLC 技术部23技术资料 AC500/Issue: 09.2012 变量定义编程语言程序梯形图(LD) (*结果 Var1 为 TRUE*) 结构化文本(ST) VAR1:=60&=40; LD 指令列表(IL) GE ST 60 40 Var1 (*结果 Var1 为 TRUE*) (*结果 Var1 为 TRUE*)功能块(FBD) (*结果 Var1 为 TRUE*)2.6.4? ? ? ?LE――小于等于指令功能:判断两个操作数的大小,当第一个数小于等于第二个数时返回 TRUE,否则结 果为 FALSE。 输入/输出数据类型: 输入数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、 DINT、UDINT、REAL、TIME、DATE、TOD、DT 和 STRING; 输出数据类型:BOOL。指令使用举例变量定义编程语言程序梯形图(LD) (*结果 Var1 为 TRUE*) 结构化文本(ST) VAR1:=20&=30; LD 指令列表(IL) LE ST 20 30 Var1 (*结果 Var1 为 TRUE*) (*结果 Var1 为 TRUE*)????北京 ABB电气传动系统有限公司 PLC 技术部24技术资料 AC500/Issue: 09.2012 功能块(FBD) (*结果 Var1 为 TRUE*)2.6.5? ? ? ?EQ――等于指令功能:判断两个操作数是否相等,当第一个数等于第二个数时返回 TRUE,否则结果 为 FALSE。 输入/输出数据类型: 输入数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、 DINT、UDINT、REAL、TIME、DATE、TOD、DT 和 STRING; 输出数据类型:BOOL。指令使用举例变量定义编程语言程序梯形图(LD) (*结果 Var1 为 TRUE*) 结构化文本(ST) VAR1:=40=40; LD 指令列表(IL) EQ ST 40 40 Var1 (*结果 Var1 为 TRUE*) (*结果 Var1 为 TRUE*)功能块(FBD) (*结果 Var1 为 TRUE*)2.6.6? ? ? ?NE――不等于指令功能:判断两个操作数是否不相等,当第一个数不等于第二个数时返回 TRUE,否则 结果为 FALSE。 输入/输出数据类型: 输入数据类型:BOOL、BYTE、WORD、DWORD、SINT、USINT、INT、UINT、 DINT、UDINT、REAL、TIME、DATE、TOD、DT 和 STRING; 输出数据类型:BOOL。????北京 ABB电气传动系统有限公司 PLC 技术部25技术资料 AC500/Issue: 09.2012 指令使用举例变量定义编程语言程序梯形图(LD) (*结果 Var1 为 FALSE*) 结构化文本(ST) VAR1:=40&&40; LD 指令列表(IL) NE ST 40 40 Var1 (*结果 Var1 为 FALSE*) (*结果 Var1 为 FALSE*)功能块(FBD) (*结果 Var1 为 FALSE*)2.7 数据类型转换指令PowerPro 提供了 240 个数据类型转换指令,用于各种数据类型之间相互转换。 语法:&TYPE1&_TO_&TYPE2& ? ? ? 禁止将“较大的”数据类型隐含地转换为“较小的”数据类型使用,当从较大数据类 型转为较小数据类型时,有可能丢失信息。 如果被转换的值超出目标数据类型的存储范围,则这个数的高字节将被忽略。例如将 INT 类型转换为 BYTE 类型,或者将 DINT 类型转换为 WORD 类型。 &TYPE&_TO_STRING 的转换中,字符串是从左边开始生成的。如果定义的字符串长 度小于&TYPE&的长度,右边部分会被截去。 数据类型转换指令列表 表 4-7-1 列出了所有的数据类型转换指令,本小节讲述数据类型转换指令。????北京 ABB电气传动系统有限公司 PLC 技术部26技术资料 AC500/Issue: 09.2012 表 4-7-1 BOOL_TO_&TYPE& BYTE_TO_&TYPE& DATE_TO_&TYPE& DINT_TO_&TYPE&DT_TO_&TYPE&DWORD_TO_&TYPE&INT_TO_&TYPE&WORD_TO_&TYPE&REAL_TO_&TYPE&SINT_TO_&TYPE&STRING_TO_&TYPE&TIME_TO_&TYPE&TOD_TO_&TYPE&UDINT_TO_&TYPE&UINT_TO_&TYPE&USINT_TO_&TYPE&????北京 ABB电气传动系统有限公司 PLC 技术部27技术资料 AC500/Issue: 09.2012 2.7.1? ? ? ?BOOL_TO_&TYPE&――布尔类型转换指令功能:把布尔数据类型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 输出为数字类型时,如果输入是 TRUE,则输出 1,如果输入是 FALSE,则输出为 0; 输出为字符串类型时, 如果输入是 TRUE, 则输出字符串'TRUE', 如果输入是 FALSE, 则输出为字符串'FALSE'。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)VarInt1:=BOOL_TO_INT(TRUE); 结构化文本 (ST) st1:=BOOL_TO_STRING(TRUE); time1:=BOOL_TO_TIME(TRUE); td:=BOOL_TO_TOD(TRUE);(*结果为 1*) (*结果为'TRUE'*) (*结果为 T#1ms*)(*结果为 TOD#00:00:00.001*)????北京 ABB电气传动系统有限公司 PLC 技术部28技术资料 AC500/Issue: 09.2012 date1:=BOOL_TO_DATE(TRUE); datedt :=BOOL_TO_DT(TRUE); LD ST LD ST LD 指 令 列 表 (IL) ST LD ST LD ST LD TRUE VarInt1 TRUE st1 TRUE time1 TRUE td TRUE date1 TRUE(*结果为 D#*) (*结果为 DT#-00:00:01*)BOOL_TO_INT (*结果为 1*)BOOL_TO_STRING (*结果为'TRUE'*)BOOL_TO_TIME (*结果为 T#1ms*)BOOL_TO_TOD (*结果为 TOD#00:00:00.001*)BOOL_TO_DATE (*结果为 D#*)BOOL_TO_DT ST datedt (*结果为 DT#-00:00:01*)功 能 块 (FBD)2.7.2? ? ? ?BYTE_TO_&TYPE&――字节类型转换指令功能:把字节类型转换为其他数据类型。 输入/输出数据类型(参见表 4-7-1): 当 BYTE_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE;当 BYTE_TO_TIME、BYTE_TO_TOD 时,输入将以毫秒值进行转换; 当 BYTE_TO_DATE、BYTE_TO_DT 时,输入将以秒值进行转换。????北京 ABB电气传动系统有限公司 PLC 技术部29技术资料 AC500/Issue: 09.2012 指令使用举例变量定义编程语言程序(部 分)(*结果为 TRUE *)(*结果为 16# 00FF *)梯形图(LD)(*结果为 T#255ms *)(*结果为 DT#-00:04:15 *)(*结果为 255 *)(*结果为字符串'255'*) Varbyte1:=16#FF Varbool1:=BYTE_TO_BOOL(Varbyte1); Varint1:=BYTE_TO_INT(Varbyte1); 结 构 化 文 本 (ST) Vartime1:=BYTE_TO_TIME(Varbyte1); Vardt1:=BYTE_TO_DT(Varbyte1); (*结果为 DT#-00:04:15 *) Varreal1:=BYTE_TO_REAL(Varbyte1); (*结果为 255 *) Varstring1:=BYTE_TO_STRING(Varbyte1); (*结果为字符串'255'*) (*Varbyte1 取值*) (*结果为 TRUE *) (*结果为 16# FF *) (*结果为 T#255ms *)????北京 ABB电气传动系统有限公司 PLC 技术部30技术资料 AC500/Issue: 09.2012 LD ST LD ST LD ST LD 指令列表(IL) ST LD ST LD ST LD ST16#FF Varbyte1 Varbyte1 Varbool1 Varbyte1 Varint1 Varbyte1 Vartime1 Varbyte1 Vardt1 Varbyte1 Varreal1 Varbyte1 Varstring1 (*结果为字符串'255'*) (*结果为 255 *) (*结果为 DT#-00:04:15 *) (*结果为 T#255ms *) (*结果为 16# FF *) (*结果为 TRUE *) (*Varbyte1 取值*)BYTE_TO_BOOLBYTE_TO_INTBYTE_TO_TIMEBYTE_TO_DTBYTE_TO_REALBYTE_TO_STRING(*结果为 TRUE *)(*结果为 16# 00FF *)功能块(FBD)(*结果为 T#255ms *)(*结果为 DT#-00:04:15 *)(*结果为 255 *)(*结果为字符串'255'*)2.7.3? ? ?WORD_TO_&TYPE&――字类型转换指令功能:把字类型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 当 WORD_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE;当 WORD_TO_TIME、WORD_TO_TOD 时,输入将以毫秒值进行转换;????北京 ABB电气传动系统有限公司 PLC 技术部31技术资料 AC500/Issue: 09.2012 ?当 WORD_TO_DATE、WORD_TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)Varword1:=4863; Varusint1:=WORD_TO_USINT(Varword1); 结构化文本 (ST)(*Varword1 取值*) (*结果 255 *)说明:如果将整数 4863(十六进制为 16#12FF)保存为 USINT 型变量,则会丢失高位 数据,只显示低位数据 255(十六进制为 16#FF)。 Vartime1:=WORD_TO_TIME(Varword1); Vardt1:=WORD_TO_DT(Varword1); (*结果 DT#-01:21:03 *) LD ST LD ST 4863 Varword1 Varword1 Varusint1 Varword1 Vartime1 Varword1 Vardt1 (*结果 DT#-01:21:03 *) (*结果 T#4s863ms*) (*结果 255 *) (*Varword1 取值*) (*结果 T#4s863ms*)WORD_TO_USINT 指令列表(IL) LD ST LD STWORD_TO_TIMEWORD_TO_DT功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部32技术资料 AC500/Issue: 09.2012 2.7.4? ? ? ?DWORD_TO_&TYPE&――双字类型转换指令功能:把双字类型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 当 DWORD_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE;当 DWORD_TO_TIME、DWORD_TO_TOD 时,输入将以毫秒值进行转换; 当 DWORD_TO_DATE、DWORD_TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)Varword1:=16#56FF; Varusint1:=DWORD_TO_USINT(Vardword1); 结构化文本 (ST)(*Varword1 取值*) (*结果 255 *)说明:如果将整数 16#56FF(十进制为 22271)保存为 USINT 型变量,则会丢失高位数 据,只显示低位数据 255(十六进制为 16#FF)。 Vartime1:=DWORD_TO_TIME(Vardword1); Vardt1:=DWORD_TO_DT(Vardword1); (*结果 DT#-06:11:11 *) LD ST LD 16#56FF Vardword1 Vardword1 Varusint1 Vardword1 Vartime1 Vardword1 (*结果 T#22s271ms*) (*结果 255 *) (*Vardword1 取值*) (*结果 T#22s271ms*)DWORD_TO_USINT 指 令 列 表 (IL) ST LD ST LDDWORD_TO_TIMEDWORD_TO_DT????北京 ABB电气传动系统有限公司 PLC 技术部33技术资料 AC500/Issue: 09.2012 STVardt1(*结果 DT#-06:11:11 *)功 能 块 (FBD)2.7.5? ? ? ?SINT_TO_&TYPE&――短整型转换指令功能:把短整型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 当 SINT_TO_BOOL 时, 输入不等于 0 时输出为 TRUE, 当输入等于 0 时输出为 FALSE; 当 SINT_TO_TIME、SINT _TO_TOD 时,输入将以毫秒值进行转换; 当 SINT_TO_DATE、SINT _TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)Varsint1:=100; 结构化文本(ST) Vardt1:=SINT_TO_DT(Varsint1); Varreal1:=SINT_TO_REAL(Varsint1); LD 100 ST Varsint1 LD Varsint1 SINT_TO_DT ST Vardt1 LD Varsint1 SINT_TO_REAL ST Varreal1(*Varsint1 取值*) (*结果 DT#-00:01:40 *) (*结果为 100 .0*)(*Varsint1 取值*)指令列表(IL)(*结果 DT#-00:01:40 *)(*结果 Varrea1 为 100.0*)功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部34技术资料 AC500/Issue: 09.2012 2.7.6? ? ? ?USINT_TO_&TYPE&――无符号短整型转换指令功能:把无符号短整型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 当 USINT_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE;当 USINT_TO_TIME、USINT _TO_TOD 时,输入将以毫秒值进行转换; 当 USINT_TO_DATE、USINT _TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)结 构 化 文 本 (ST)Varusint1:=200; Varreal1:=USINT_TO_REAL(Varusint1); LD ST LD 200 Varusint1 Varusint1 Vardt1 Varusint1 Varreal1(*Varusint1 取值*) (*结果为 200 .0*)Vardt1:=USINT_TO_DT(Varusint1);(*结果 DT#-00:03:20 *)(*Varusint1 取值*)指令列表(IL)USINT_TO_DT ST LD ST (*结果 DT#-00:03:20 *)USINT_TO_REAL (*结果 Varreal1 为 200.0*)功能块(FBD)2.7.7? ?INT_TO_&TYPE&――整数类型转换指令功能:把整型数据类型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1):电气传动系统有限公司 PLC 技术部 35 技术资料 AC500/Issue: 09.2012????北京 ABB ? ?当 INT_TO_BOOL 时, 输入不等于 0 时输出为 TRUE, 当输入等于 0 时输出为 FALSE; 当 INT_TO_TIME、INT _TO_TOD 时,输入将以毫秒值进行转换; 当 INT_TO_DATE、INT _TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言 梯形图(LD)程序(部 分)VarSINT1 := INT_TO_SINT(4223); (*结果 VarSINT1 为 127 *) 结构化文本(ST) 说明:如果将整数 4223(十六进制为 16#107F)保存为 SINT 型变量,则会丢失高 位数据,只显示低位数据 127(十六进制为 16#7F)。 LD 指令列表(IL) ST 功能块(FBD) 2 VarREAL1 (*结果 VarREAL1 为 2.0*)INT_TO_REAL2.7.8? ? ? ?UINT_TO_&TYPE&――无符号整数类型转换指令功能:无符号整数类型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 当 UINT_TO_BOOL 时, 输入不等于 0 时输出为 TRUE, 当输入等于 0 时输出为 FALSE; 当 UINT_TO_TIME、UINT _TO_TOD 时,输入将以毫秒值进行转换; 当 UINT_TO_DATE、UINT _TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言 梯形图(LD)程序(部 分)????北京 ABB电气传动系统有限公司 PLC 技术部36技术资料 AC500/Issue: 09.2012 Varuint1:=6000; Varusint1:=UINT_TO_USINT(Varuint1); 结构化文本(ST) 说明:如果将整数 6000(十六进制为 16#1770)保存为 SINT 型变量,则会丢失高 位数据,只显示低位数据 112(十六进制为 16#70)。 Vartime1:=UINT_TO_TIME(Varuint1); Vardt1:=UINT_TO_DT(Varuint1); LD ST LD ST 指令列表(IL) LD ST LD ST 6000 Varuint1 Varuint1 Varusint1 Varuint1 Vartime1 Varuint1 Vardt1 (*结果 DT#-01:40:00 *) (*结果 T#6s0ms*) (*结果 112*) (*Varuint1 取值*)UINT_TO_USINTUINT_TO_TIMEUINT_TO_DT功能块(FBD)2.7.9? ? ? ?DINT_TO_&TYPE&――双整数类型转换指令功能:双整数类型类型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 当 DINT_TO_BOOL 时, 输入不等于 0 时输出为 TRUE, 当输入等于 0 时输出为 FALSE; 当 DINT_TO_TIME、DINT _TO_TOD 时,输入将以毫秒值进行转换; 当 DINT_TO_DATE、DINT _TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义????北京 ABB电气传动系统有限公司 PLC 技术部37技术资料 AC500/Issue: 09.2012 编程语言程序(部 分)梯形图(LD)Vardint1:=200000; Varusint1:=DINT_TO_USINT(Vardint1); 结 构 化 文 本 (ST) (*结果 64*) 说明:如果将整数 200000(十六进制为 16#30D40)保存为 USINT 型变量,则会丢失 高位数据,只显示低位数据 64(十六进制为 16#40)。 Vartime1:=DINT_TO_TIME(Vardint1); Vardt1:=DINT_TO_DT(Vardint1); LD 200000 ST Vardint1 LD Vardint1 DINT_TO_USINT ST Varusint1 LD Vardint1 DINT_TO_TIME ST Vartime1 LD Vardint1 DINT_TO_DT ST Vardt1 (*结果 T#3m20s0ms*) (*结果 DT#-07:33:20 *) (*Vardint1 取值*)(*结果 64*)指令列表(IL)(*结果 T#3m20s0ms*)(*结果 DT#-07:33:20 *)功能块(FBD)2.7.10? ? ?UDINT_TO_&TYPE&――无符号双整数类型转换指令功能:无符号双整数类型转换为其它数据类型。 输入/输出数据类型(参见表 4-7-1): 当 UDINT_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE;当 UDINT_TO_TIME、UDINT _TO_TOD 时,输入将以毫秒值进行转换;????北京 ABB电气传动系统有限公司 PLC 技术部38技术资料 AC500/Issue: 09.2012 ?当 UDINT_TO_DATE、UDINT _TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)Varudint1:=300000; Varusint1:= UDINT_TO_USINT(Varudint1); 结构化文本(ST) (*结果 224*) 说明:如果将整数 300000(十六进制为 16#493E0)保存为 USINT 型变量,则会丢 失高位数据,只显示低位数据 224(十六进制为 16#E0)。 Vartime1:=UDINT_TO_TIME(Varudint1); Vardt1:=UDINT_TO_DT(Varudint1); (*结果 DT#-11:20:00 *) LD ST LD ST 指令列表(IL) LD ST LD ST 300000 Varudint1 Varudint1 Varusint1 Varudint1 Vartime1 Varudint1 Vardt1 (*结果 DT#-11:20:00 *) (*结果 T#5m0s0ms*) (*结果 224*) (*Varudint1 取值*) (*结果 T#5m0s0ms*)UDINT_TO_USINTUDINT_TO_TIMEUDINT_TO_DT功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部39技术资料 AC500/Issue: 09.2012 2.7.11? ? ? ?REAL_TO_&TYPE&――实数类型转换指令功能:把浮点数转换为其它类型数据。把浮点数转换为其它类型数据时,先将值四舍 五入成整数值,然后转成新的变量类型。 输入/输出数据类型(参见表 4-7-1): 当 REAL_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE;当 REAL_TO_TIME、REAL_TO_TOD 时,输入将以毫秒值进行转换; 当 REAL_TO_DATE、REAL_TO_DT 时,输入将以秒值进行转换。指令使用举例变量定义编程语言 梯形图(LD)程序(部 分)VarINT1:= REAL_TO_INT(1.5); 结构化文本(ST) VarINT2:= REAL_TO_INT(1.4); VarINT3:= REAL_TO_INT(-1.5); VarINT4:= REAL_TO_INT(-1.4); LD 指令列表(IL) ST 功能块(FBD) 2.7 VarINT1(*结果 VarINT1 为 2*) (*结果 VarINT2 为 1*) (*结果 VarINT3 为-2*) (*结果 VarINT4 为-1*)REAL_TO_INT (*结果 VarINT1 为 3*)2.7.12? ? ?TIME_TO_&TYPE&――时间类型转换指令功能:把时间型数据转换为其它类型数据,时间在内部以毫秒为单位存储成 DWORD 类型(对于 TIME_OF_DAY 变量从凌晨 00:00 开始)。 输入/输出数据类型(参见表 4-7-1): 当 TIME_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE。????北京 ABB电气传动系统有限公司 PLC 技术部40技术资料 AC500/Issue: 09.2012 指令使用举例变量定义编程语言程序(部 分)梯形图(LD)结构化文本(ST)Varstr:=TIME_TO_STRING(T#12ms); Vardword:=TIME_TO_DWORD(T#5m); LD ST LD ST T#12ms Varstr T#300000ms Vardword(*结果为‘T#12ms’*) (*结果为 300000*)TIME_TO_STRING 指令列表(IL) (*结果为‘T#12ms’*)TIME_TO_DWORD (*结果为 300000*)功能块(FBD)2.7.13? ? ?DATE_TO_&TYPE&――日期类型转换指令功能:把日期型数据转换为其它类型数据, 日期在内部以秒为单位存储, 时间从 1970 年 1 月 1 日开始。 输入/输出数据类型(参见表 4-7-1): 当 DATE_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE。指令使用举例变量定义????北京 ABB电气传动系统有限公司 PLC 技术部41技术资料 AC500/Issue: 09.2012 编程语言程序(部 分)梯形图(LD)VarStr1:=DATE_TO_STRING(D#); 结 构 化 文 本 (ST) (*结果为'D#' *) VarInt1:=DATE_TO_INT(D#); (*结果为 29952*) 说明:将 D#(十进制 14×24×=16#127500)保存为 INT 型 变量,则会丢失高位数据,只显示低位数据 16#7500,转换十进制数为 29952。 LD ST LD ST D# VarStr1 D# VarInt1 (*结果为 29952*) (*结果为‘TRUE’*)DATE_TO_STRING 指令列表(IL)DATE_TO_INT功能块(FBD)2.7.14? ? ?DT_TO_&TYPE&――日期时间类型转换指令功能:把日期时间型数据转换为其它类型数据,日期在内部以秒为单位存储,时间从 1970 年 1 月 1 日开始。 输入/输出数据类型(参见表 4-7-1): 当 DT_TO_BOOL 时, 输入不等于 0 时输出为 TRUE, 当输入等于 0 时输出为 FALSE。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)????北京 ABB电气传动系统有限公司 PLC 技术部42技术资料 AC500/Issue: 09.2012 Varbyte:=DT_TO_BYTE(DT#-05:05:05); (*结果 Varbyte 为 129*) 结 构 化 文 本 (ST) 说 明 : 将 DT#-05:05:05 转 换 成 秒 数 , 值 为 (((14*24+5)*60+5)*60+5)=#12BC81, 保存为 BYTE 型变量, 则会丢失高 24 位数据,只显示低 8 位数据,16#81= 129。 Varstr:=DT_TO_STRING(DT#-14:20); (*结果 Varstr 为‘DT#-14:20’) LD ST LD ST DT#-05:05:05 Varbyte (*结果 Varbyte 为 129*)DT_TO_BYTE 指令列表(IL) DT#-14:20 Varstr (*结果 Varstr 为‘DT#-14:20’)DT_TO_STRING功能块(FBD)2.7.15? ? ?TOD_TO_&TYPE&――时间类型转换指令功能:把时间型数据转换为其它类型数据,日期在内部以毫秒为单位进行转化。 输入/输出数据类型(参见表 4-7-1): 当 TOD_TO_BOOL 时,输入不等于 0 时输出为 TRUE,当输入等于 0 时输出为 FALSE。指令使用举例变量定义编程语言程序(部 分)梯形图(LD)????北京 ABB电气传动系统有限公司 PLC 技术部43技术资料 AC500/Issue: 09.2012 结 构 化 文 本 (ST)Vartod1:=TOD#10:11:40; (*Vartod1 取值*) Varusint1:=TOD_TO_USINT(Vartod1); (*结果为 96*) Vartime1:=TOD_TO_TIME(Vartod1); (*结果为 T#611m40s0ms*) Vardt1:=TOD_TO_DT(Vartod1); (*结果为 DT#-10:11:40*) Varreal1:=TOD_TO_REAL(Vartod1); (*结果为 3.67e+007*) LD TOD#10:11:40 ST Vartod1 LD Vartod1 TOD_TO_USINT ST Varusint1 LD Vartod1 TOD_TO_TIME ST Vartime1 LD Vartod1 TOD_TO_DT ST Vardt1 LD Vartod1 TOD_TO_REAL ST Varreal1(*Vartod1 取值*)(*结果为 96*)指令列表(IL)(*结果为 T#611m40s0ms*)(*结果为 DT#-10:11:40*)(*结果为 3.67e+007*)功能块(FBD)2.7.16? ?STRING_TO_&TYPE&――字符类型转换指令功能: 把字符串转换为其它类型数据, 字符串型变量必须包含一个有效的目标变量值, 否则转换结果为 0。 输入/输出数据类型:(参见表 4-7-1)指令使用举例变量定义????北京 ABB电气传动系统有限公司 PLC 技术部44技术资料 AC500/Issue: 09.2012 编程语言程序(部 分)梯形图(LD)结构化文本(ST)Varword:=STRING_TO_WORD('Hollysys'); (*结果为 0*) Vartime:=STRING_TO_TIME('T#127ms'); (*结果为 T#127ms*) LD 'Hollysys' STRING_TO_WORD ST Varword LD 'T#127ms' STRING_TO_TIME ST Vartime指令列表(IL)(*结果 Varword 为 0*)(*结果 Vartime 为 T#127ms*)功能块(FBD)2.7.17? ?TRUNC――截短转换指令功能:该指令将数据截去小数部分,只保留整数部分。 输入/输出数据类型:输入为 REAL 型,输出为 INT、WORD、DWORD 型。指令使用举例变量定义编程语言程序????北京 ABB电气传动系统有限公司 PLC 技术部45技术资料 AC500/Issue: 09.2012 梯形图(LD)结构化文本(ST)Varint1:=TRUNC(1.9); Varint2:=TRUNC(-1.4); LD 1.9 TRUNC ST Varint1 LD -1.4 TRUNC ST Varint2(*结果 Varint1 为 1*) (*结果 Varint2 为-1*)指令列表(IL)(*结果 Varint1 为 1*)(*结果 Varint2 为-1*)功能块(FBD)提示: ? 当从较大数据类型转为较小数据类型时,有可能丢失信息。 ? 本指令只是截取整数部分,如果想四舍五入取整,可以使用 REAL_TO_INT 指令。2.8 初等数学运算指令2.8.1? ?ABS――绝对值指令功能:把输入数据的绝对值赋予输出变量。 输入/输出数据类型:见下表输出数据类型 INT、WORD、DWORD、DINT、UINT、REAL REAL INT、BYTE、WORD、DWORD、DINT、UINT、REAL WORD、DWORD、DINT、REAL DWORD、DINT、REAL INT、BYTE、WORD、DWORD、DINT、UINT、REAL INT、BYTE、WORD、DWORD、DINT、UINT、REAL WORD、DWORD、DINT、UINT、REAL DWORD、DINT、REAL DWORD、DINT、UDINT、REAL输入数据类型 INT REAL BYTE WORD DWORD SINT USINT UINT DINT UDINT指令使用举例变量定义????北京 ABB电气传动系统有限公司 PLC 技术部46技术资料 AC500/Issue: 09.2012 编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序i:=ABS(-2); LD -2 ABS ST Varint1(*结果 Varint1 为 2*)(*结果 Varint1 为 2*)功能块(FBD)2.8.2? ? ?SQRT――平方根指令功能:对输入数据求平方根,输入数据为非负数。 输入/输出数据类型: 输入数据类型可以是 BYTE、WORD、 DWORD、INT、DINT、 REAL、SINT、 USINT、 UINT、UDINT,输出数据必须是 REAL 类型。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=SQRT(10); (*结果 Var1 为 3.162278*) LD 10 SQRT ST Var1 (*结果 Var1 为 3.162278*)功能块(FBD)2.8.3? ? ?LN――自然对数指令功能:对输入数据求自然对数,输入数据必须为正数。 输入/输出数据类型: 输入数据类型可以是 BYTE、WORD、 DWORD、INT、DINT、 REAL、SINT、 USINT、 UINT、UDINT,输出数据必须是 REAL 型。????北京 ABB电气传动系统有限公司 PLC 技术部47技术资料 AC500/Issue: 09.2012 指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=LN(45); (*结果 Var1 为 3.806663*) LD 45 LN ST Var1 (*结果 Var1 为 3.806663*)功能块(FBD)2.8.4? ? ?LOG――常用对数指令功能:对输入数据求以 10 为底的对数,输入数据必须为正数。 输入/输出数据类型: 输入数据类型可以是 BYTE、WORD、 DWORD、INT、DINT、 REAL、SINT、 USINT、 UINT、UDINT,输出数据必须是 REAL 型。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=LOG(314.5); LD 314.5 LOG ST Var1(*结果 Var1 为 2.497621 *)(*结果 Var1 为 2.497621 *)功能块(FBD)2.8.5? ? ?EXP――指数指令功能:以输入数据为指数的幂计算,即 y ? e ,其中 x 为输入,y 为输出。x输入/输出数据类型: 输入数据类型可以是 BYTE、WORD、 DWORD、INT、DINT、 REAL、SINT、 USINT、电气传动系统有限公司 PLC 技术部 技术资料 AC500/Issue: 09.2012????北京 ABB48 UINT、UDINT,输出数据必须是 REAL 型。 指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=EXP(2); LD 2 EXP ST Var1(*结果 Var1 为 7.389056*)(*结果 Var1 为 7.389056*)功能块(FBD)2.8.6? ?SIN――正弦指令功能:求输入数据的正弦值,输入数据以弧度表示。 弧度(rad ) ? 角度 *?180 o输入/输出数据类型:输入数据类型可以是 BYTE、WORD、DWORD、INT、DINT、 REAL、SINT、USINT、UINT、UDINT,输出数据必须是 REAL 型。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=SIN(1.5); LD 1.5 SIN ST Var1(*结果 Var1 为 0.997495 *)(*结果 Var1 为 0.997495 *)功能块(FBD)2.8.7? ?COS――余弦指令功能:求输入数据的余弦值,输入数据以弧度表示。 弧度(rad ) ? 角度 *?180 o输入/输出数据类型:输入数据类型可以是 BYTE、WORD、DWORD、INT、DINT、电气传动系统有限公司 PLC 技术部 49 技术资料 AC500/Issue: 09.2012????北京 ABB REAL、SINT、USINT、UINT、UDINT,输出数据必须是 REAL 型。 指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=COS(0.5); LD 0.5 COS ST Var1(*结果 Var1 为 0.8775826 *)(*结果 Var1 为 0.8775826 *)功能块(FBD)2.8.8? ?TAN――正切指令功能:求输入数据的正切值,输入数据以弧度表示。 弧度(rad ) ? 角度 *?180 o输入/输出数据类型:输入数据类型可以是 BYTE、WORD、DWORD、INT、DINT、 REAL、SINT、USINT、UINT、UDINT,输出数据必须是 REAL 型。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=TAN(0.5); LD 0.5 TAN ST Var1(*结果 Var1 为 0.5463025 *)(*结果 Var1 为 0.5463025 *)功能块(FBD)2.8.9? ? ?ASIN――反正弦指令功能:求输入数据的反正弦值。 输入/输出数据类型: 输入数据类型可以是 BYTE、WORD、 DWORD、INT、DINT、 REAL、SINT、 USINT、电气传动系统有限公司 PLC 技术部 50 技术资料 AC500/Issue: 09.2012????北京 ABB UINT、UDINT,输出数据必须是 REAL 型,输出数据以弧度表示。 指令使用举例变量定义编程语言 梯形图(LD)程序结构化文本(ST) 指令列表(IL)Var1:=ASIN(0.5); LD 0.5 ASIN ST Var1(*结果 Var1 为 0.5235988 *)(*结果 Var1 为 0.5235988 *)功能块(FBD)2.8.10? ? ?ACOS――反余弦指令功能:求输入数据的反余弦值。 输入/输出数据类型: 输入数据类型可以是 BYTE、WORD、 DWORD、INT、DINT、 REAL、SINT、 USINT、 UINT、UDINT,输出数据必须是 REAL 型,输出数据以弧度表示。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=ACOS(0.5); LD 0.5 ACOS ST Var1(*结果 Var1 为 1.047198 *)(*结果 Var1 为 1.047198 *)功能块(FBD)2.8.11? ?ATAN――反正切指令功能:求输入数据的反正切值。 输入/输出数据类型:输入数据类型可以是 BYTE、WORD、DWORD、INT、DINT、????北京 ABB电气传动系统有限公司 PLC 技术部51技术资料 AC500/Issue: 09.2012 REAL、SINT、USINT、UINT、UDINT,输出数据必须是 REAL 型,输出数据以弧 度表示。 指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1:=ATAN(0.5); LD 0.5 ATAN ST Var1(*结果 Var1 为 0.4636476 *)(*结果 Var1 为 0.4636476 *)功能块(FBD)2.8.12? ?EXPT――幂指令功能:对输入数据求幂,输入数据 1 为幂底数,输入数据 2 为幂指数。 输入/输出数据类型:输入数据的类型可以是 BYTE、WORD、DWORD、INT、DINT、 REAL、SINT、USINT、UINT、UDINT,输出数据必须是 REAL 型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)Var1:=EXPT(7,2); LD 7 EXPT 2 ST Var1(*结果 Var1 为 49 *)(*结果 Var1 为 49 *)功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部52技术资料 AC500/Issue: 09.2012 2.9 地址运算指令2.9.1?ADR――取地址指令功能:取得输入变量的内存地址,并输出。该地址可以在程序内当作指针使用,也可 以作为指针传送给函数。指令使用举例变量定义编程语言 梯形图(LD)程序结构化文本(ST) 指令列表(IL)VarAddress:= ADR(Var1); LD ADR ST Var1 VarAddress功能块(FBD)2.9.2? ?^――取地址内容指令功能: 在指针变量后增加“^”符号,以取得该指针所指地址的数据。指令使用举例变量定义编程语言程序????北京 ABB电气传动系统有限公司 PLC 技术部53技术资料 AC500/Issue: 09.2012 梯形图(LD)结构化文本(ST)VarAddress:= ADR(Var1); Var2:= VarAddress^; LD ADR ST LD ST Var1 VarAddress VarAddress^ Var2 (*结果 Var2 为 100 *)指令列表(IL)功能块(FBD)2.9.3?BITADR――位地址指令功能:取得 BOOL 量的位地址,下例中 MX300.7 的地址为 300*8+7=2407。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Bitadr1:=BITADR(Varbool1); LD Varbool1 BITADR ST Bitadr1功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部54技术资料 AC500/Issue: 09.2012 2.9.4?INDEXOF――索引指令功能:在 POU 中执行索引指令,可以寻找 POU 的索引号,其输入为 POU 的名称, 输出为 INT 的数据。指令使用举例变量定义编程语言程序梯形图(LD) (POU2 可以是程序、功能块、函数) 结构化文本(ST) Var1:=INDEXOF(POU2); LD 指令列表(IL) ST POU2 Var1 (*结果 Var1 为 38*) (*结果 Var1 为 38*)INDEXOF功能块(FBD) (*结果 Var1 为 38*)2.9.5?SIZEOF――数据类型大小指令功能:取得数据类型所需字节数。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST)程序Var1:=SIZEOF(arr1); (*结果 Var1 为 10*) LD arr1 Var1 (*结果 Var1 为 10*)指令列表(IL)SIZEOF ST功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部55技术资料 AC500/Issue: 09.2012 2.10 调用指令? ? CAL―调用指令 功能:调用功能块或者程序。在 IL 语言中使用 CAL 运算来调用功能块或者程序。被 调用功能块/程序的输入变量位于该功能块/程序名称右侧的括号内。 指令使用举例 在程序中调用名称为 Inst 的功能块,其输入变量 Par1 等于 0、 Par2 等于 TRUE。IL 中调用 如下: CAL Inst(Par1:=0, Par2:=TRUE)2.11 初始化操作指令? ? INI―初始化操作指令 功能:用于初始化在程序中使用的功能块程序的内部保持型变量。指令使用举例 语法: &bool-Variable& := INI(&FB-instance, TRUE|FALSE) 在程序中调用名称为 FB-instance 的功能块,其输入变量分别为 Par1=FB-instance、Par2= TRUE|FALSE,输出为初始化完成标志。主程序 PLC_PRG 变量定义:funb(FB)变量定义:编程语言 梯形图(LD)程 序 PLC_PRG????北京 ABB电气传动系统有限公司 PLC 技术部56技术资料 AC500/Issue: 09.2012 功能块 funb程序说明: ? 程序运行第一个扫描周期将变量 var1、var2、var3 的值改为 4、8、10,强制变量 VarBOOL2 接通,INI 指令执行,将三个保持型变量恢复为初始值 1、2、3。2.12 字符串处理指令(Standard.lib)2.12.1? ?LEN――取字符串长度指令功能:计算字符串的长度。 输入/输出数据类型:输入是 STRING 类型,输出是 INT 类型。指令使用举例变量定义编程语言 梯形图(LD) 结构化文本(ST) 指令列表(IL)程序Var1INT1 := LEN (‘Hollysys’); (*结果 Var1INT1 为 8*) LD ‘Hollysys’ LEN ST VarINT1 (*结果 Var1INT1 为 8*)????北京 ABB电气传动系统有限公司 PLC 技术部57技术资料 AC500/Issue: 09.2012 功能块(FBD)2.12.2? ?LEFT――左边取字符串指令功能:从字符串左边取字符串。 指令格式: LEFT (STR,SIZE) , 其中输入 STR 是 STRING 类型, 为输入字符串, SIZE 是 INT 型,为从输入字符串左边开始获取的字符个数,输出数据类型是 STRING 型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)VarSTRING := LEFT (‘Hollysys’,3); (*结果为' Hol '*) LD ' Hollysys ' LEFT 3 ST VarSTRING (*结果为' Hol '*)功能块(FBD)2.12.3? ?RIGHT――右边取字符串指令功能:从字符串右边取字符串。 指令格式:RIGHT(STR,SIZE),其中输入 STR 是 STRING 类型,为输入字符串, SIZE 是 INT 型, 为从字符串右边开始获取的字符个数, 输出数据类型是 STRING 型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)VarSTRING := RIGHT(‘Hollysys’,3);(*结果为' sys '*)????北京 ABB电气传动系统有限公司 PLC 技术部58技术资料 AC500/Issue: 09.2012 指令列表(IL)LD ' Hollysys ' RIGHT 3 ST VarSTRING(*结果为' sys '*)功能块(FBD)2.12.4? ?MID――中间取字符串指令功能:从字符串中间取字符串。 指令格式:MID(STR,LEN,POS),其中输入 STR 是 STRING 类型,为输入字符串。 LEN 和 POS 是 INT 型,该指令从 POS 开始从左往右获取 LEN 个字符,输出数据类 型是 STRING 型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)VarSTRING:= MID(‘Hollysys’,2,4); LD ‘Hollysys’ MID 2,4 ST VarSTRING(*结果为‘ly’ *)(*结果为‘ly’ *)功能块(FBD)2.12.5?CONCAT――合并字符串指令功能:把两个字符串按前后顺序结合成一个字符串,输入和输出都是 STRING 型。指令使用举例变量定义编程语言程序????北京 ABB电气传动系统有限公司 PLC 技术部59技术资料 AC500/Issue: 09.2012 梯形图(LD)结构化文本(ST) 指令列表(IL)VarSTRING := CONCAT ('Holly', 'sys'); (*结果为'Hollysys'*) LD 'Holly' CONCAT ‘sys’ ST VarSTRING (*结果为'Hollysys'*)功能块(FBD)2.12.6? ?INSERT――插入字符串指令功能:把一个字符串插入到另一个字符串中。 指令格式:INSERT(STR1,STR2,POS)。输入 STR1 和 STR2 是 STRING 类型,POS 是 INT 型, 该指令把 STR2 插入到 STR1 的 POS 位置之后。 输出数据类型是 STRING 型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)VarSTRING := INSERT ('Hoysys', ‘ll’,2); (*结果为 'Hollysys'*) LD 'Hoysys' INSERT ‘ll’,2 ST VarSTRING (*结果为 'Hollysys'*)功能块(FBD)2.12.7? ?DELETE――删除字符指令功能:从字符串中删除字符。 指令格式: DELETE(STR,LEN,POS)。 输入 STR 是 STRING 类型, 为输入字符串。 LEN 和 POS 是 INT 型,该指令从输入字符的位置 POS 处开始从左往右删除 LEN 个字符, 输出数据类型是 STRING 型。????北京 ABB电气传动系统有限公司 PLC 技术部60技术资料 AC500/Issue: 09.2012 指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)VarSTRING := DELETE ('Hollysys',3,6); (*结果为'Holly'*) LD 'Hollysys' DELETE 3,6 ST VarSTRING (*结果为'Holly'*)功能块(FBD)2.12.8? ?REPLACE――替换字符串指令功能:用一个字符串替代另一字符串中的部分内容。 指令格式:REPLACE(STR1,STR2,L,P)。输入 STR1 和 STR2 是 STRING 类型,为输 入字符串。 L 和 P 是 INT 型, 该指令用 STR2 代替 STR1 中从 P 位置开始的 L 个字符。 输出数据类型是 STRING 型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)VarSTRING:= REPLACE ('HOLLYSYS', 'iAS',4,5); (*结果为'HOLLiAS'*) LD 'HOLLYSYS' REPLACE 'iAS', 4,5 ST VarSTRING (*结果为'HOLLiAS'*)????北京 ABB电气传动系统有限公司 PLC 技术部61技术资料 AC500/Issue: 09.2012 功能块(FBD)2.12.9? ?FIND――查找字符串指令功能:在一个字符串中查找与另一字符串完全相同的内容。 指令格式:FIND(STR1,STR2)。输入 STR1 和 STR2 都是 STRING 类型,为输入字符 串, 返回数据类型为 INT 型。 指令功能为在第一个字符串 STR1 中查找与字符串 STR2 完全相同的部分,返回该相同部分在字符串 STR1 的起始位置。若没有完全相同的部 分,输出结果为 0。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST) 指令列表(IL)VarINT1 := FIND ('HOLLYSYS', 'SYS'); (*结果为 6*) LD 'HOLLYSYS' FIND 'SYS' ST VarINT1 (*结果为 6*)功能块(FBD)2.13 BCD 码转换指令(Util.lib)BCD 码的一个字节包含 0 到 99 之间的整数。 每个十进制位对应 4 位, 十位数存储在 4-7 位, 个位数存储在 0-3 位。BCD 码格式和 16 进制表达方式很相似,差别在于 BCD 字节值是 0-99, 而 16 进制是 0-FF。 BCD 码用 4 位二进制数表示一个十进制数位,整个十进制数用一串 BCD 码来表示。例如, 十进制数 59 表示成 BCD 码为 ,但表示成二进制为 2#111011。十进制 51 转换成 BCD 码,5 的二进制是 0101,1 的二进制是 0001,那么 51 转换 BCD 码为 。????北京 ABB电气传动系统有限公司 PLC 技术部62技术资料 AC500/Issue: 09.2012 2.13.1? ? ?BCD_TO_INT――BCD 码转整型指令功能:该指令将 BCD 码转为 INT 值。 输入/输出数据类型: 输入 B:BYTE 型,输入 BCD 码的二进制形式(或者该二进制对应的十进制和十六 进制)。比如 BCD 码 49,表示为 2#100 1001(或者对应 10#73、16#49),则此处输 入 2#100 1001(或者 10#73,16#49);?输出:INT 型,该 BCD 码所代表的实际值,如果输入的字节不是 BCD 码,输出是-1。指令使用举例变量定义编程语言程序梯形图(LD)Varint1:=BCD_TO_INT(73); 结构化文本(ST) Varint2:=BCD_TO_INT(151); Varint3:=BCD_TO_INT(15); LD ST LD 指令列表(IL) ST LD ST 73 Varint1 151 Varint2 15 Varint3(*结果为 49 *) (*结果为 97*) (*输出-1,因为不是 BCD 码格式*)BCD_TO_INT (*结果为 49 *)BCD_TO_INT (*结果为 97*)BCD_TO_INT (*输出-1,因为不是 BCD 码格式*)功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部63技术资料 AC500/Issue: 09.2012 2.13.2? ? ? ?INT_TO_BCD――整型转 BCD 码指令功能: 将整数值转换成 BCD 码, 当整数值不能转换成 BCD 码字节时, 输出数值 255。 输入/输出数据类型: 输入 I:INT 型,如果整数值为 49,则此处输入整型数据 49。 输出:BYTE 型,转换完的 BCD 码的值,比如将 49 转换为 BCD 码为 2#100 1001, 则此处输出 2#100 1001(或者该二进制对应的 10#73、16#49)。指令使用举例变量定义编程语言程序梯形图(LD)Varbyte1:=INT_TO_BCD(49); 结构化文本(ST) Varbyte2:= INT_TO_BCD(97); Varbyte3:= INT_TO_BCD(100); LD ST LD 指令列表(IL) ST LD ST 49 Varbyte1 97 Varbyte2 100 Varbyte3(*结果为 73*) (*结果为 151*) (*错误!输出:255*)INT_TO_BCD (*结果为 73*)INT_TO_BCD (*结果为 151*)INT_TO_BCD (*错误!输出:255*)功能块(FBD)????北京 ABB电气传动系统有限公司 PLC 技术部64技术资料 AC500/Issue: 09.2012 2.14 位/字节操作指令(Util.lib)2.14.1? ? ?EXTRACT――位提取指令功能:提取输入变量 X 二进制数的第 N 位(N=0,1...)并输出该位数值。 输入/输出数据类型: 输入变量 X 是 DWORD 类型,N 是 BYTE 型;输出变量是 BOOL 类型。指令使用举例变量定义编程语言程序梯形图(LD)结构化文本(ST)指令列表(IL)(*结果 FLAG1=TRUE,FLAG2=TRUE *) FLAG1:=EXTRACT(X:=81, N:=4); (*结果:TRUE,因为 81 的二进制数是 1010001,所以第四位是 1*) FLAG2:=EXTRACT(X:=33, N:=0); (*结果:TRUE,因为 33 的二进制数是 100001,所以第 0 位是 1*) LD 81 EXTRACT 4 ST FLAG1 (*结果:TRUE,因为 81 的二进制数是 1010001,所以第四位是 1*) LD 33 EXTRACT 0 ST FLAG2 (*结果:TRUE,因为 33 的二进制数是 100001,所以第 0 位是 1*)梯形图(LD)(*结果 FLAG1=TRUE *)(*结果 FLAG2=TRUE *)2.14.2?PACK――位整合指令功能:把输入位 B0、B1、……、B7 合成为一个字节,与这个指令相对应的指令是 UNPACK。????北京 ABB电

我要回帖

更多关于 苹果7p换主板多少钱 的文章

 

随机推荐