我使用西门子PLC已经很久了,对于西门子,也是有着深厚的感情。出于编程效率的考虑,我通常都使用语句表进行编程。近来,由于客户的要求,需要使用美国通用电气公司的GE PLC,经过几天的学习,基本对他的产品有了些了解,作为一个国际上知名PLC厂家的产品,却让我大大的失望,特借此宝地诉一下我的苦衷。
他的PLC基本分6-7个系列,这里不说他绝大多数系列不支持浮点数运算,也不说他不支持指针,也不去说他绝大多数系列不支持中断(定时中断或硬件中断),更不去说他子程序不能有参数和返回值(我还真想不出这样的子程序有什么实际的用处),这里只说他的语句表,因为我喜欢用语句表编程。
GE的PLC不像西门子的,内部有一些累加器,运算主要在累加器进行,要使用它的语句表,需要先指定一个8位内存区域作为BOOL运算的累加器,需要先指定一个2字内存区域作为数学运算的累加器,这个不说了,看看他的语句吧,为了节省篇幅,只把常用的指令列出来,同时把西门子300/400系列的语句表指令做个对照:
BOOL 运算指令
指令名 ---- 西门子 ---- GE
装入位 ---- A ---- LD_BOOL
与 ---- A ---- AND
或 ---- O ---- OR
异或 ---- X ---- XOR
输出 ---- = ---- ST_BOOL
传送指令
装入 ---- L ---- LD_INT
送出 ---- T ---- ST_INT ST_DINT ST_REAL
数学运算指令
+I ---- ADD_INT(in1, in2)
+D ---- ADD_DINT(in1, in2)
+R ---- ADD_REAL(in1, in2)
其他的指令类似,绝大多数的指令不但很长,而且还带下划线。
我算服了,要是这样写程序,还不要累死?这还有什么效率可言?输个下划线需要两只手来配合。竟然最常用的指令都带下划线!
看来GE的软件设计工程师可真是绞尽脑汁设计出来的。也许这样的设计就是为了防止你使用它的语句表吧?
另外,他的编程软件没装授权时只能用四天,四天之后,便什么都用不了了,再重装之后的四天,可以输程序,但不能存储!服了吧?