0724 「万泉河」烟台方法前进之路:在信捷PLC中实现FB功能
0724 【万泉河】烟台方法前进之路:在信捷PLC中实现FB功能
前段时间, 微信群里有个网友杠我:
万老师, 你如果能研究把烟台方法应用到信捷小PLC中,实现优雅编程就厉害了。
我说,那怎么样?
佩服你厉害。
那就是男人之间最朴素的赌约了:承认你厉害。
虽然没有啥实际意义, 我还是到信捷官网下载了编程软件研究了一下。
属于最简单的那种PLC, 没有FC, 也没有FB, 只有一个C函数功能,然而主要用于自定义算法实现的,看来也用不上什么大用场。
所以简单研究后, 就放弃了。 软件卸载, 文档资料也都删除到回收站里了。
反正我也没吹过牛,没拍过胸脯, 做不出就做不出了。 也不是我个人的责任。 没什么。
然而两天前, 某位参加了烟台方法学习的深圳的学员讲, 他们那里周边有很多非标设备的厂家,大量使用信捷PLC控制,因为成本低,所以用量很大。 是一块巨大的市场。
所以, 如果我们能努力研究下,开发出便捷高效的程序架构,帮助这些工厂实现一定程度的标准化架构,也可以带来一些市场收益。
所以我就把删除的文件从回收站里又翻出来恢复,软件也重新安装了。 再从头研究了解。 其实本意想的是, 如果实在不能实现面向对象模块的重复调用, 那就最朴素的方法平铺开写,然后通过STL的规律, 顶多想办法 再用高级语言软件生成一套上位编程软件,对象的应用库都在上位软件中,在上层实现面向对象的标准化应用, 顶多实现过程麻烦一点,但只要花出些精力实现了, 以后一劳永逸,也仍然可以实现高效和优雅。
于是按照上述的思路, 把80双联开关的例子程序在迅捷PLC中实现了, 先做了一般发给他。
然后再具体翻阅文档的时候, 发现信捷PLC虽然不支持单独文件格式的子程序,所有程序都在一个主程序中实现, 然而仍然可以有子程序:
虽说相当简陋,但也总比一遍一遍无穷次地重复写代码要好一些。
所以研究了如何用这个P子程序实现功能块的方法。 只有实现了功能块, 后面才有可能实现面向对象的标准化应用。
而这种子程序的缺点非常多,没有参数接口,没有INPUT, OUTPUT, TEMP , STATIC, 其实就是啥都没有。
那么就需要把这些功能全都逐一规划实现。
比如没有INOUT接口, 我们可以统一规划M100-M199为输入接口,而M200-M299为输出接口。所有FB均使用同一接口,可以实现在调用时结构的统一规范,易于使用。
那么每个FB逻辑内部, 需要对使用的公共M区(以及D区)进行备份保存现场,以及运行数据恢复。那么需要得到每个实例的UID标识, 以将静态数据保存到固定的存储区域。
然而也并不适合所有数据全部存储,需要部署安排一部分TEMP区域,否则所有数据都保存的话,在系统设备多的时候,D区很快会耗光。
我做三菱标准化的时候为什么曲折特别多?就是因为它的FB里面没有TEMP, 全靠STATIC VAR , 导致软元件消耗非常快,动辄一不小心就耗光。
而对于TEMP区,还需要考虑到子程序多重调用产生的堆栈和出栈的问题,同一个子程序内部,在调用了另外的子程序进入并回来后,TEMP的数据以及INOUT的数值都不应该丢失被冲掉。
即需要有一个堆栈层数的计量。
这种编程其实已经完全回到最古老的汇编语言的编程了。 而其实所有高级语言,以及PLC语言, 最终也都是经过编译后成为汇编语言并到机器码,才被CPU识别并执行。 所以是否支持面向对象的功能, 那是高级语言系统的区别, 到了机器代码层级,都一回事, 并没有什么区别。
比如我所规划的:
M5000-5099 100 BIT TEMP,M5100-5199 100bit INPUT,M5200-5299 100BIT OUTPUT,DM5300-5320 20WORD TEMP, 其中DM5300存放了当前UID的偏移量---堆栈保存到的D1100
D1000-1020 20WORD STATIC
D1000 参数给定/运行INPUT/OUTPUT
D1020 参数给定内部使用
D1040-1060 TEMP
---堆栈40wWORD保存到的D1200
D1060 运行值静态
有人会反驳, 标准化编程你不是反对用全局变量嘛? 这不还是规划使用了全局变量
放心, 我这里规划的全局变量,都是同一套变量在重复使用, 而且使用之前会保存现场值,使用之后会恢复现场值。
比如M5000的数据我用过了,然而如果有相邻的程序功能, 有人恰巧也用到了M5000,也不影响。(这里面又又出现了谈虎色变双线圈色又变的故事, 下回专门讲)
最终程序用到的只是D1000—D7999的数据区。 而且数据区的使用都是自动分配的不会发生呼吸干涉, 即便调试程序, 都不需要查阅数据区的使用情况。
如下是实现了定时器以及MOTOR块的情况:
以及电机块的实例化调用:
大学时代有学习过汇编语言, 考试成绩还不错。 然而工作这么多年,除了曾经解读加密软件的反汇编代码曾经接触过一点之外,一直没有机会用到。 没想到那点技能和理解,今天又用上了。
这个程序暂时不打算公开。因为并没有经过调试,还有很多错误。因为我并没有信捷PLC的真机,而信捷的软件里也没有仿真功能。 所以虽然我把架构搭好了,到真正能跑起来, 差的还很远很远。 要完全实现标准化烟台方法, 更是不知到哪年了。
也不打算做完整的培训例子教程,一方面不晓得同行的需求度有多高,我耗费心血做下来市场不认可, 也是白白浪费精力。 另一方面,这个的开发难度比起即便SMART和三菱,又高出了一个层级, 那么价格会比他们更高,而对于习惯使用廉价PLC的同行及工厂来说, 这部分费用肯定难以承受。
开发难度高,学习难度也更高了。 学习的门槛就更高。所以也不认为有推广的意义。 如果哪位玩汇编熟练的老手,想做同样的工作,看看我上面两张截图和说明, 估计自己也能做出来。
如果哪位手里有淘汰不用的迅捷PLC的硬件, 又非常想获得这套例子程序参考,可以跟我联系交换。 但无论如何必须接受一点:程序是不完整的, 一定有很多错误。所以你肯定是先接受了本文中提出的理论理念, 认为有可行性,才来加入学习。 而不是像行业中的某些人,拿到我书看到其中的TIA误写成TAI这样的错误,就破口大骂,抱怨书的内容垃圾, 甚至大有一种通过一个小错误全盘掀翻所有理论, 并逼你下跪认错的架势。 太令人不齿了。
其他的有应用信捷PLC, 或者其它类似的小型PLC如军创等的厂家, 如果有研发非标设备的需求, 希望能有协助开发标准化程度高一些的程序架构,现在可以联系合作了。
制氢自动化如何通过PLC实现?
制氢自动化通过PLC实现主要依赖于PLC在控制系统中的核心作用。PLC在制氢自动化中的应用涵盖了水电解、热解以及其他化学反应过程等多个方面,确保这些过程的稳定、安全和高效运行。
首先,PLC用于控制电解槽、电流调节、电解液供给和排放等参数,确保水电解过程的稳定和安全。此外,在热解过程中,PLC可以控制加热设备、温度调节、气体流量和反应时间等参数,实现热解过程的自动化控制。对于其他化学反应产生氢气的过程,如氨水和铝的反应、水煤气转化等,PLC同样能够控制反应容器、反应物供给、温度控制和反应时间等参数。
PLC在制氢自动化中的应用具有多种优势。它使用单片微型计算机,具有高度集成的特点,同时还具备自诊断功能,拥有特定的保护电路,使得系统的可靠性得到保证。PLC的运行由程序执行控制,运行处理速度快,且支持多种编程语言,如顺序功能流程图、梯形图、功能模块图、指令表和结构化文本等,能够简易迅捷地应用在不同场合。
具体来说,PLC在制氢自动化中的实现方式如下:
(1)实时监测与控制:PLC能够实时监测制氢设备的运行状态和参数,如温度、压力、流量等,并根据预设的逻辑和参数进行自动控制。通过精确控制各个设备的开关、运行时间和速度等参数,PLC确保设备在高效运行的同时,避免不必要的能源消耗。
(2)故障诊断与预警:PLC具备强大的故障诊断功能,能够及时发现制氢设备中的异常情况或故障,并发出预警信号。这有助于工作人员迅速定位问题并进行处理,避免生产中断。
(3)数据记录与分析:PLC能够记录制氢设备的运行数据,为后续的工艺优化和设备维护提供数据支持。通过对数据的分析,工作人员可以了解设备的运行状况,找出潜在的问题并进行改进。
(4)远程监控与维护:通过与上位机系统或远程监控系统的连接,PLC可以实现制氢设备的远程监控和维护。这使得工作人员可以在远离现场的情况下对设备进行实时监控和操作,提高了工作效率和便捷性。
如果您需要应用在制氢自动化项目中的PLC,可以私信评论找我。
晚上,我们“广成工控”直播间也会聊相关内容,欢迎观看。
相关问答
迅捷plc怎么与电脑连接?
使用USB线连接因为迅捷PLC设备可以通过USB线连接到电脑上,这种连接方式既安全又稳定。同时,通过连接,用户可以轻松地在电脑上对设备进行编程和监控。在连接前...
三菱PLC编程线和信捷一样吗?
不一样三菱是rs422通讯,信捷是RS232通讯。信捷与台达的通用,其实都是USB转232,而且8针管脚定义一样,和三菱的不通用,三菱的是USB转422,因为串口类型不一样...
plc如何记住停电次数?
用SM0.1接一个计数器在系统里设计数器为掉电保持就可以了用SM0.1接一个计数器在系统里设计数器为掉电保持就可以了
为什么铝材挤压机的PLC都是用三菱多?支持国产PLC不好吗?
铝材加工行业在20+年前是很赚钱的行业,开始的设备都是算先进的,自动化程度也算高,很多采用当时用得很多的进口PLC。首先在当时,日本电子工业比较发达,国内...但...
台达PLC通讯問題:点击下载显示通讯端口已使用或无此通讯端口...
1、现在台达最新编程软件是WPL2.20了,请到中达电通网站下载吧,不知道现在新的台达PLC是否兼容老版本的编程软件2、你所说的编程通讯电缆是没有错的3、通讯电缆...
yy直播不能看了,为什么-ZOL问答
三菱fx1s的plc与迅捷触摸屏th765的通讯程序肿么写?9565浏览6回答《辐射4》88号避难所隐藏入口位置在哪隐藏入口位置分析8157浏览3回答为什么ps里的文...
家里电信升级300M,是不是之前100M的无线猫跟路由器都得换?有哪些推荐的品牌?
回答本行业问题,感谢邀请。先说结论,升级到300M宽带后,光猫,路由器,网线都要升级到千兆,否则为啥要升级到300M宽带呢?光猫:这个不用在意他的WiFi质量,...电脑...
压力传感器灵敏度设置?
..选择标定压力:标定压力的选取决定其获取最佳精度的压力范围,标定点必须根据目标压力范围加以选择,而压力范围可以不与工作范围相一致。而灵敏度标定在数学...
NEWSUN怎么样-一起装修网
一起装修网问答平台为您提供NEWSUN怎么样的相关答案,并为您推荐了关于NEWSUN怎么样的相关问题,一起装修网问答平台:装修问题,因我而止。
新型灌装机怎么解决故障
[回答]2.释放急停按扭。3.接通气压,保持在6公斤左右。4.检查开关电源是否有DC24V电源输出。5.检查触摸屏与PLC通信线是否松动。知道了液体灌装机如何保养...