网站首页 > 开源技术 正文
前言
写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。
信捷PLC之C函数编程(一)
http://bbs.plcjs.com/forum.php?mod=viewthread&tid=487089&fromuid=42656
(出处: PLC论坛-全力打造可编程控制器专业技术论坛)
猜你喜欢
- 2025-06-30 常考“元素符号”和“化学式”,不要错过!
- 2025-06-30 电气图的图形符号的构成,零基础千万别错过了!
- 2025-06-30 机械制图符号大全|设计师必备干货(GB/T
- 2025-06-30 电工篇:别被电路图难住!这些常用辅助符号其实很好懂
- 2025-06-30 以下是一些常见的二胡符号及其表示意义(包括弓法、指法
- 2025-06-30 word中常用组合键输入常用 符号(word2010组合键)
- 2025-06-30 一份相对完整的转义字符对照表(各种转义字符的含义?)
- 2025-06-30 电气字母符号大全,新人也能轻松上手
- 2025-06-30 空气开关上的数字符号都表示什么含义?很多电气人员都是云里有雾
- 2025-06-30 为什么仅学C语言不够,还得“重新理解编程”?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)