恭喜,你发布的帖子
发布于 2018-12-25 16:24:13
14楼
在此驱动版块说关于PLC程序的事情貌似有点不合适,但还是想说一说关于故障这块的PLC程序的事情。
PLC和驱动的通信,简单地说,就是“读得上来,写得进去,来时不堵,去时通暢,完整的来,完整的去”,我们做通信的程序时,往往都是调用几个系统自带的通信功能指令块,填上参数,系统中配置有上位组态软件和HMI配置的,还要做上故障的信息记录、处理等操作,如果没有上位组态软件和HMI的,通信的编程工作恐怕到此就结束了。
有上位组态软件和HMI的,正常的是故障时有提示信息弹窗,保证人机交互的及时与流畅。而不带有上位组态软件和HMI的,如何向用户提示通信故障信息好像就显得不那么重要了,常常是系统设备不能正常工作了,操作人员才发现有问题了;而具体问题是什么,对于系统不是那么熟悉的处理人员,又得花上一些时间去查找确认,这也就影响了生产效率。
这里针对不带上位组态软件和HMI的系统(我一般称之为“最小控制驱动系统 / 最小配置系统”,构成模式一般是“PLC+变频器/驱动器”),如何判断通信是否正常主要手段有:
1、驱动器侧参数判断;
2、PLC控制器侧程序判断;
关于驱动器侧参数判断,上面Y版已经作了细致的说明,概括地说,就是通过面板 / 手操器 / 联机软件 / 移动端APP等对照说明书参数手册等查询驱动器通信相关的参数,观察其数值,从而判断通信是否正常;在此就不再做额外说明了;主要说说第2种手段涉及的东西。
PLC侧的判断处理,一般是利用西门子PLC通信指令块的Error/fault管脚的值,编写故障处理程序,包括向外部的声光报警动作输出(需要占用一个或者数个输出点),历史故障记录的储存(检查设备正常工作时间查询),主要是在PLC内开辟一段区域,以“线性表”/"级联表“的形式来保存故障记录,记录包括故障时的故障代码,故障代码对应的详细故障说明,故障时的系统时间,故障时的系统控制关键参数值(如速度、压力、电流、电压等),类似于汇编语言编程中的“现场保护”操作,当故障处理完毕后再“恢复现场”,这样当故障发生时再联机查找故障原因,便变得有章可循了。
还有一种快捷的方法是,在程序中编写一段“最小通信测试程序”,这段程序的功能仅仅是通信,功能包括“读参数+写参数”,当需要判断通信状况时,便可以单独调用它,判断通信是否正常。
这也就涉及PLC程序编写中的“测试程序”这一知识点,通常编程的人是不会写“测试程序单元”的,因为没有这个认识或者有这个认识而没有去写的驱动力,写程序是需要付出精力的,毕竟抱有”多一事不如少一事“”程序能用就行了“这种想法的还大有人在。
希望有朝一日,我们编写的程序和我们使用的程序,能够在尽善尽美的路上走得更远。
虽然是可以在PLC侧做判断。但通常是针对一台控制时,比较好办。
像我使用200是对7台MM4通讯,且又多种数据类型的读写,就写成了指针方式的循环访问。只使用一个调用子程序。
这种情况下,就不太容易在PLC侧判断。
反之,在驱动侧判断就比较清楚。比如,总线是在哪里接触不好了?这类的故障。
请填写推广理由:
分享
只看
楼主