PLC程序开发心得

目录

前言

一、PLC程序开发标准化模块化

二、PLC程序参数配置化

三、PLC程序移植关键要素

1.接口变更

2.控制器变更


前言

从开始接触程序编写时,就时常听到或看到有人说程序开发要考虑标准化模块化、低耦合高内聚、可重用性及可移植性等这些观念。但是如何理解,如何着手去实现这些要求,一直在探索中。而且每个人理解也不一样,欢迎交流学习。


一、PLC程序开发标准化模块化

一次偶然的机会看到一篇关于ISA-88标准的文章,西门子工业根据该标准开发一款基于ISA-88标准模板程序。在研读这篇文章后,根据文档提供的思路把我们现在应用控制程序改版后,感觉受益颇多。在构建程序框架时候,要考虑层级概念。分层级后才便于分类控制,实现模块化。模块化后,才有可能实现标准化。于是有了单元模块、设备模块、控制模块层级。单元模块一般以PLC为单元;设备模块是以一组实现特定功能的控制模块组成;控制模块是最底层传感器及执行器类。一个完整的设备控制流程便如下:由单元模块处理外部或内部源命令,来组织控制多个设备模块,实现特定工艺流程,而各个设备模块控制自身所属控制模块执行动作,最终完成动作实现。从控制流程来看工艺流程业务控制定位在设备模块层级,而工艺流程动作放在控制模块层级。这样的控制方法便于设备非标定制,扩充设备功能及便于更改工艺流程,而不影响控制模块层级,实现单元模块化。还有就是要理清数据流关系,便于建立合理的全局数据。很多时候,全局数据要在很多地方使用,一定要建立层级和所属关系的数据流,否则关系很混乱。分清是只读、还是可写可读。当然标准化模块化还有其他方面,能力有限,不在扩展了。

二、PLC程序参数配置化

在程序开发时,经常会出现同一设备应用于不同项目会有很多方面调整。但设备逻辑是一样的,只是环境参数发生变化。这时程序不按照参数配置化思路去做,就有可能在新项目的时候,要把程序从头到尾检查一遍,看下是否有地方写“死”了,要改下程序,否则会出现Bug。例如,数组长度发生变化,一般把长度适当放长预留,但这不是解决问题根本办法,可以通过配置常量的方式,更改常量自动实现数组长度变化。还有更复杂的是设备布局发生变化,设备间逻辑关系发生变化,怎么组织这些逻辑关系,可以实现只修改配置参数,不用改程序。可以抽象出来一个关系,找一个关键索引,去关联这些关系。例如:物流中堆垛机设备,需要在货架和站台之间执行任务,但在站台时,需要和输送系统进行安全信号,但每个项目站台数量不一样,站台位置也一样不好映射关系。这时可以通过抽象站台概念,以站台编号为索引,去关联关系。总之,把可能变化的因素抽象出来,理清关系。

三、PLC程序移植关键要素

程序可能变化因素较多,比如:接口、控制器品牌或系列变更等,是比较头疼的事情。针对这些问题有些建议。

1.接口变更

接口变更,在设计程序时要把程序逻辑功能和接口做一个分界线。设备的本身是有整体动作流程及相关功能,其实和接口本身是没有联系的,接口其实只是一个任务触发或信息化采集。所以在规划程序时,把接口和设备做一个输入输出关系的耦合。例如:接口协议无论如何定义,它都应该能解析成设备本身能执行的指令,所以就就是一个耦合关系的建立。输出也是同样的逻辑。

2.控制器变更

控制器变更,这是一个更大工作量的事情。可能要把代码逐行解析重新替换。所以要注意几点:程序尽量采用ST语言编写,一个好处就是它是采用文本形式编码,便于复制。只要做简单的语法或关键字修改,就可以完成移植。而其他语言,例如,LAD就需要逐个指令去修改。程序中尽量采用基本指令及基本数据类型(结构体除外),尽量符合IEC标准,因为每个品牌控制器高级应用指令形式有很大差别,短时间内不能实现快速高效移植。


总结

以上就是今天要讲的内容,本文仅仅谈了自己的一些心得分享,每个人理解和实现方法都不同,欢迎交流学习。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值