恭喜,你发布的帖子
发布于 2018-05-11 15:31:58
39楼
1,你没回答我怎么跳转。当HMI提示第xx个电机有故障的时候怎么找到程序。
2,你这种方式适用少数的生产线,每条生产线多个类似的电机。如果反过来呢,生产线两百个,每个生产线少数的电机而且都不一样,难道我建立一百多个个udt,外加一百多个db?我建立udt的时间,用M区都做好了。
3,遇到控制100个电机的时候,另外建立一个DB+UDT当然是好办法,但是没有必要因此否定M区吧?另外试想一下这200个电机如何与HMI通信。
1:现在HMI 或者SCADA 一般支持高级语言,所以,你相应的控制程序可以在HMI做出来!
看下图,一个简单的电机 ,可以看出提示里,很清楚在PLC3里面,G143M这FB块,电机代号M2160和上位机显示一致,在打开STEP7 找到G123M这FB就行!,下方是M2160所对应的IO点,以及当前状态!
如果维护人员 打开STEP7 都摘不到G143M这个功能块,那就不要干维护了!
2,如果你不同电机需要建立不同UDT,那说明你的电机UDT 不够完善,可以再开发完善吧
电机再神奇,它能有多少变化?
就算有多个UDT 又怎么样?中大程序里有500UDT 不很正常?
脑子可以灵活点,我不能在DB里建个100个STRUCT,每个Struct代表一条生产线,然后在Struct里建相应电机的UDT啊?PlantDB.Line1.Motor1.StStartedFwd,我还可以通过数组,数组元素类型是UDT,我想工厂有多少台电机更改数组大小就行,你M能干吗?PlantDB.Line1.Motor[1].StStartedFwd
就算是一个生产线一个DB又怎么样?新的1500 CPU 可以有60999个DB了,FC/FB等都65535了。
3:可以把相关信息汇总到一个双字或者字里,定义好X0-X31的含义,以一个DWORD的方式,和HMI,HMI内部通过脚本解析出当前状态字的含义。对于HMI和上位机之间通信 就是一个DWORD。
当然 不是否定M区,个人觉得用M来做中大程序,程序结构会显得不够紧凑,层次感不强,所有的变量都是平等地散步在符号表里(当然PORTAL可以建立多个变量表)感觉就是 1000个工人全部直接像总经理汇报,没有
总经理-经理1-主管1-电机(工人100) 这种层次感
主管x-电机(工人100)
经理2-主管1-电机(工人100)
主管x-电机(工人100)
最后,讨论到此为止,已经背离楼主主题了,搞技术的都有点执着,我们各自坚持自己的道路吧!
请填写推广理由:
分享
只看
楼主