暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

解忧系列:TC2梯形图中IEC运算符不能串连怎么办?

Lizzy的倍福园地 2021-07-13
1738
在工作中实践总结,在朋友圈分享,
做最接地气的公众号

内容摘要

在TwinCAT 2 梯形图编辑器中,IEC运算符——比较、移位、算术运算等——都必须单独成行。当需要互相串联时只能分到多行,并建立中间变量作为前行的输出结果和后行的执行条件。本文介绍的Lib通过把IEC运算符封装成带使能输入EN和执行输出ENO的功能块,使得在梯形图中这些FB实例可以任意串联。
关键词
梯形图,IEC运算符,串联

适用范围

习惯使用梯形图或者紧急情况下需要把原控制系统的PLC程序“翻译”到TwinCAT 2的用户


正文
在TwinCAT 2的PLC Control的梯形图编辑器中,IEC运算符——比较、移位、算术运算等——都必须单独成行。当需要与其它逻辑串联时只能分到多行,并建立中间变量作为上一行的输出结果和下一行的执行条件。例如:

1TC2中的梯形图和IEC运算符


图1表示根据两个比较的结果对变量进行赋值和数学运算,这些指令用ST来编辑都是非常简洁的,比如上图用ST写为:

2TC 2中用ST表达IEC运算符


尽管如此,ST并不能完全取代梯形图。不仅是传统的电气工程师习惯了使用梯形图,实际上对于逻辑顺序清晰的应用,使用梯形图来表达和监视确实会更加直观。在TwinCAT 2中,IEC运算符不能串联使梯形图程序变得很长——其它PLC用一行可以表达的逻辑在TC2中需要好几行,而频繁换行也使各个动作的逻辑相关性监视起来过于“曲折”。 

在TwinCAT 3中已经解决了这个问题,而对于长期使用TwinCAT 2的老用户还是受到这个问题的困扰。作者本人制作的库文件“Lib_ForLD”,通过把IEC运算符封装成带使能输入EN和执行输出ENO的功能块,使得在梯形图中这些FB实例可以任意串联。这些功能块包括:




3Lib_ForLD 中替换IEC运算符的FB 


Lib_ForLD中的FB使用兼容西门子PLC的命名,与IEC标准也基本一致,只是IEC指令支持多种数据类型,而在Lib_ForLD中区分了整数、实数和字符串,分别加上了 _I、_R、_S等后缀。在Resource中点开库中的每个FB,可以看到它的接口和功能说明,比如功能块“ADD_R”:

4:功能块“ADD_R”的接口和说明 


利用库文件Lib_ForLD的功能块重写图1的运算,就可以合并到一行,如图所示:

5Lib_ForLD 重写图1的逻辑

 

需要说明的是,目前MOVE指令还做不到自动识别类型转换,引用FB时要区分是字符串还是数值。字符串赋值要用MOVE_S,其它变量的赋值用MOVE_R,而MOVE_R的输出变量需要用F_LREAL或者F_INT显性指定其变量类型。在线监视图5的执行情况,示例如下:

6MOVESIN运算示例

 

图6中调用了两次MOVE_R实例,其实例名称与FB名称相同,这种用法完全将FB作为FC使用——不需要记忆,即时输出运算结果,下一次运算清除上一次的运算结果。两个MOVE_R,第1次把浮点数赋给整数,用F_INT指定输出格式,结果是四舍五入的整数。第2次把整数赋给浮点数,用F_LREAL指定输出格式,这个结果是确定的,不会有什么歧义。尝试把第1次MOVE_R的输入值从15.69改为15.49,它的输出就从16变成了15,如下图所示:

7 MOVE_R的四舍五入

 

图5和图6中顺便可以观察SIN_R的使用,SIN(1)等于0.8415,SIN(2)等于0.9093。其它功能块都几乎与IEC运算符相同,望文知义,不需要逐一说明。有任何疑问,请联系作者本人。

 


特别说明:

 (1)    关于TwinCAT 3

在TwinCAT 3中已经解决了这个问题,不需要使用这个库。
新项目优先推荐TwinCAT 3。

 (2)    关于代码“翻译”

编写这个Lib不是为了方便用户翻译程序,而是为了在梯形图编程时方便地表达逻辑。
一直以来都有习惯日系产品的客户询问如何把原来的梯形图程序“翻译”到TwinCAT中。倍福官方并不建议把既有程序从一个控制器平台“翻译”到另一个平台。因为每个平台都有它的特点,如果不能理解TwinCAT的工作机制和系统提供的各种工具,机械的“翻译”发挥不出TwinCAT的优势,做到100分也只能达到原系统的水平。但有时候情况特殊,仍然有可能直接翻译程序。
因此推荐做法是,在条件允许的情况下还是尽量基于TwinCAT编程模版重新编写PLC程序。具体工艺细节的处理可以参考原来的程序,而整理的程序框架必须重新构建。这种做法看似比“翻译”要困难,欢迎随时联系倍福的技术工程师,我们会提供编程惯例,详细解释怎么做和为什么,协助你在TwinCAT平台上自由发挥。

库文件和示例程序的下载链接:

ftp://baclizzy.com.cn:21/Lizzy的倍福园地/20191115TC2LD


喜欢本文?识别二维码,可关注公众号

文章转载自Lizzy的倍福园地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论