1.绝对地址、符号地址与符号表
一般而言,在plc程序中的所有信号都是借助于“地址(Address)”进行识别与区分的,例如,当输入点IO.O连接了外部的“电机启动”按钮时,程序中的全部IO.O信号触点便代表了“电机启动”按钮的状态,这样的地址称为“绝对地址”(见图13-4.1)。
使用绝对地址编程时,如果程序较复杂,编程人员必须在编程的同时编制一份地址与实际信号的对应关系表,以记录程序中每一信号的含义以及对应的PLC地址,以便在编程时进行随时查阅。同样,在程序阅读、调试与检查时,也必须根据对应关系表才能确认最终系统中的实际信号以及信号的状态。
虽然使用绝对地址编程容易、方便,程序简单,但是在程序较复杂时,会带来程序理解、阅读方面的难度。因此,为了便于程序的理解,方便他人阅读程序,对于较复杂的程序,在PLC中一般可以采用利用文字编辑的“符号( Symbol)”来表示信号的地址,例如,在程序中直接使用“m—start”这一名称来代表电机启动信号的输入IO.O等,这样的地址称为“符号地址”(见图13-4.2)。
为了在程序中能够使用“符号”来进行编程,同样必须在STEP7中编写一份绝对地址与信号符号之间的对应关系表,这一对应表在STEP7中称为“符号表(Symbol table)”(见图13 -4.3)。
2.全局符号、局部符号
在PLC程序中所使用的信号根据用途可以分为两大类。
第一类是用于整个程序的通用信号,如输入I、输出Q、标志寄存器M等,这些信号在整个PLC程序中的意义与状态是唯一的,因此又称为“全局变量”。
另一类是仅用于某一个特定逻辑块(如FC、FB、OB等)的临时信号,主要有局部变量寄存器L等。变量寄存器是一种用于临时保存信号状态的暂存器,它仅在程序调用到这一逻辑块时才具有实质性的含义,在程序调用完成后,其状态就失去意义,因此又称为“局部变量”。
对于全局变量定义的符号地址称为“共享符号”( Shared Symbols)或“全局符号”;对于局部变量定义的符号地址称为“局域符号”或“局部符号”( Local Symbols)。
“共享符号”在程序中的显示加双引号(见图13 -4.2),“局域符号”在显示时前面加“撑”标记(见图13-4.4)。
“共享符号”是整个程序所使用的共同符号,在一个程序中,符号名称应是唯一的;而“局域符号”只是在某一特定逻辑块中使用的临时性标记,因此,在同一程序的不同逻辑块中可以重复使用。 “共享符号”可以由英文字母、数字、下划线、特殊字符甚至汉字所组成,“局域符号”一般不可以使用
特殊字符与汉字,一个符号最大可以使用的字符总数为24个。符号表内不可以使用附录C中的S7关键词。
3.符号表与变量声明表
符号表( Symbol table)与变量声明表(Variable declaration table)是STEP7中两种用来定义符号地址的表格形式,其本质都是为了建立绝对地址与符号地址之间的内在联系,但表格所针对的对象有所区别。
在STEP7中,由于使用了“共享苻号”与“局域符号”两种不同的符号地址,且其使用范围不同,因此,其定义的方法也因此而有所区别。
“共享符号”是整个程序所使用的共同符号,可以在程序中通过统一、通用的表进行定义。用于“全局符号”定义的表,在STEP7中称为“符号表(Symbol Table)”。
“局域符号”是某一特定逻辑块所使用的临时性标记,只能在特定的逻辑块中进行临时性定义。用于临时性的、“局域符号”定义的表被称为“变量声明表(Variable declaration table)”。
表13 -4.1列出了“共享符号”与“局域符号”之间的区别。