前言
写PLC程序,越来越觉得结构化文本编程语言(ST)给PC编程带来的便利,在处理一些数据上,可以写的更加灵活。所以,在项目PLC选型上,我都会优先选择支持结构化文本的PLC。
国内有些厂商推出了一些较为高端一些的PLC,开发环境集成在Codesys平台(例如禾川、信捷);也有的PLC的开发环境集成在Visual Studio平台中(例如倍福)。
像依赖于博图的西门子、三菱、欧姆龙PLC,都可以在独家的IDE中进行ST编程开发。
今天,我们来说一下ST语言编程的“另类”——信捷的C函数编程。
如果大家关注我的公众号文章,最近就会收到比较多的信捷C函数编程的推送,大家想要学习的话,记得关注微信公众号【工业技术互联】
下一篇讲解如何使用信捷PLC的C函数编程,本篇文章先说一下这种编程方式。
创建功能块
打开信捷PLC的编程软件“XDPPro”,就会看到在左侧目录树下,有“函数功能块”这一栏。
通过在上面单击右键,就可以添加功能块
image01
第一个函数功能块的默认名字为“FUNC1”,如下图所示,可以自定义源文件名称、版本、描述、作者、日期。设定好源文件信息后,点击确认就可以创建文件。
image02
在此,我将函数功能块命名为“FUNC3”。打开创建好的文件,如下图所示。
使用过程中存在的问题
但是使用过程中,就会存在一些问题。给我最大的不便之处在于它的不灵活性——BOOL数据处理和WORD数据处理的不灵活性。
【第一点】文件长度问题
如图image03所示,我给文件取名为“FUNC3”,没问题,长度满足要求,但是如果你要给它取名为“ZIDONGSHANGLIAO”(自动上料),那不好意思,它不支持这么多长度的文件名命名,当输入到“ZIDONGSHA”时候,剩下的就输入不进去了。
【第二点】文件大小写问题及格式
文件名只能支持字母、数字、下划线,并且第一个字符不能是数字,很符合命名规范,但是它的字母只能是大写,无法输入小写。所以,当你想输入“ShouDong”(手动)时候,它会自动变成“SHOUDONG”,看起来总感觉不舒服。如果你用过西门子的FC和FB,就会发现,它的这些块是可以支持中文的。
好吧, 上面我都可以接受,不影响我在掉发的路上越走越远。
【第三点】函数传递的形参固定
如图三所示,void FUNC3(WORD W , BIT B )这里面的形参(WORD W,BIT B称为形参)无法改变。比如你想将函数写成void FUNC3(WORD W , WORD D)那不行,这是不允许的。像写成void FUNC3(BIT B , BIT D)这样的也不允许。因为根本不允许修改,当你要修改时侯,IDE就弹出函数属性页面——改也改不了。
那是否可以在此函数中创建一个新的函数用来调用?实践表明,这样也是不行的。
就是有很多的局限性,用起来特别不灵活。
当然,也有好的一方面,如果你是要用来计算CRC校验,用这个函数就可以很好的实现。官方也有相关的例子,直接拿来使用即可。
如果你要把信捷的C函数编程当作ST编程来使用,有很多和你预想的不一样的地方。
比如赋值符号:
在ST中,将15传递给int类型的a,表达式可以为a :=15;
在信捷的C函数编程中,则是 a=15;
信捷的编程方式就是C语言。而ST的编程方式不是C语言,是PASCAL。
|