1 数据类型
数据类型的设置也是PLC的关键问题之一。
下表的“数据类型”列是IEC 61131-3和国标GB/T 15969.3规定的数据类型。BYTE、WORD、DWORD也称为字节、字和双字。
合利时的PLC使用德国3S公司开发的编程软件,腾控PLC使用德国KW公司开发的编程软件。表1中同时列出了西门子与腾控的PLC、和利时的大型PLC LK系列使用的数据类型。和利时的小型PLC LM的数据类型与LK系列的基本上相同,只是没有结构和枚举。
http://blog.gkong.com/uploadfile4/2011424212617584.jpg
西门子的PLC还有8位的字符(CHAR),S7-1200的DTL(长格式日期和时间)有12个字节,定义的时间可精确到纳秒。
建议小型PLC至少采用S7-200的数据类型,建议大中型PLC在此基础上适当增加IEC 61131-3规定的其他数据类型。
2 编程语言与指令系统
1.编程语言
IEC 61131-3规定了5种编程语言(梯形图、指令表、功能块图、顺序功能图和结构文本),前3种属于基本的编程语言,欧洲的用户比较喜欢用功能块图。如果不考虑产品出口,小型PLC可以只提供前两种编程语言。
2.设置指令的原则
指令是用户用来编程的基本元素,有的指令是所有的PLC都必须有的基本指令,有的指令是针对特定的PLC硬件、特定的工控对象或特定的工控任务设置的。
如果指令设置过少,编程时使用起来不方便,可能需要几条指令才能实现别的PLC一条指令就能实现的功能。但是指令如果设置得过多,特别是增加了很多绝大多数用户很少使用的指令,将会增加初学者的负担,甚至令人望而生畏,一般采取折衷的方案。
AI/AO模块应能直接读、写,而不是像某些PLC哪样,需要编写复杂的程序来读写它们。
3.指令的表示方式
建议采用欧美的PLC的方框指令的表示方式,除了指令的助记符外,方框中间是指令各参数的符号,形象直观。
S7-200的比较指令采用触点的形式,触点上下是两个操作数,比方框比较指令更为简捷和易于理解。
建议方框比较指令、定时器、计数器不要设置EN(使能输入)和ENO(使能输出)。
4.避免设置使用概率极低的指令
现在流行的某些PLC也有这类指令,它们会增加用户的负担,初学者不能判断哪些指令对他几乎没有任何用处。可以将实现不常用的功能的指令单独分类放置。
5.设法减少指令的数量
因为PLC使用多种多样的数据类型,同样的功能(例如数据转换、移位、循环移位等)将会衍生出多条指令。西门子的新一代小型PLC S7-1200系列的某些指令的操作数的数据类型可以设置,例如其数据转换指令CONV的两个操作数都可以选用12种不同的数据类型(见下图),一条指令相当于其他PLC的几十条指令。但是对编程软件的设计要求较高。
http://blog.gkong.com/uploadfile4/2011424212825866.jpg
6.IEC 61131-3的标准功能和标准功能块
IEC 61131-3定义了一些标准功能和标准功能块,它们实际上是PLC的指令。
下面是标准的IEC 61131-3功能:
• 数据类型转换功能,例如INT_TO_REAL;
• 函数运算功能,例如ABS和LOG;
• 标准算术运算功能,例如ADD和MUL;
• 位串功能,例如AND和SHL;
• 选择和比较功能,例如SEL和GE;
• 字符串功能,例如:RIGHT和INSERT;
• 时间数据类型功能,例如带有TIME数据类型的SUB。
下面是标准IEC 61131-3功能块:
• 双稳态元件功能块,例如SR和RS;
• 边沿检测功能块,例如R_TRIG和F_TRIG;
• 计数器功能块,例如CTU和CTD;
• 定时器功能块,例如TON和TOF。