在STEP7程序中,I/O信号、位存储器、计数器、定时器、数据块和函数块可以使用绝对地址也可以使用符号地址寻址。使用符号地址寻址,增强程序的可读性,地址的符号名分为共享和区域两种。
1.共享符号名
共享符号名可以在整个项目不同的程序块中使用,共享符号名需要在符号表中定义。在“SIMATIC Manager”界面中,点击PLC站→CPU→S7 Program,双击“Symbols”图标,进入符号表编辑界面,为每个绝对地址编辑所需的符号名,如图9-40所示。
图9-40 编辑符号表
符号表的每一行中,在“Symbol”列中定义符号名称,在“Address”列中指定相应的绝对地址,在“Data type”列中自动显示绝对地址的数据类型。如在“Symbol”列和“Address”列中输入的地址与符号名相同,以红色高亮标出相同的行号。
在符号表中可以为下列对象定义符号名:
•I/O信号(I、IB、IW、ID、Q、QB、QW、QD)
•外设输入与输出(PI、PQ)
•位存储器(M、MB、MW、MD)
•定时器(T)/计数器(C)
•逻辑块(FB、FC、SFB、SFC)
•数据块(DB)
•用户定义数据类型(UDT)
•变量表(VAT)
在程序编辑界面中,使用菜单命令“View”→“Display with”→“Symbolic Representa-tion”可以切换符号地址与绝对地址的显示。(www.xing528.com)
在程序中访问数组、结构体、时钟等复合数据类型变量时,必须使用符号名寻址,这些数据必须在数据块(共享符号名)或区域数据区L中定义,例如在DB1(图9-40中定义的符号名为PRODATA)定义一个结构体类型变量,符号名“STRDATA”如图9-41所示。
图9-41 复合数据类型的符号地址
只能使用符号名“PRODATA.STRDATA”或“DB1.STRDATA”表示数据块中的结构体(变量大于四个字节不能使用绝对地址寻址),变量的从属关系用符号“.”隔开,例如“PRODATA.STRDATA.VALVE”寻址结构体中的一个变量。
2.区域符号名
区域符号名只能在一个程序块中使用,可以在下列数据区中定义区域符号名:
•函数或函数块参数(输入、输出及输入/输出参数);
•函数块的静态数据;
•函数、函数块及OB的临时数据区。
使用区域符号名寻址与共享符号名寻址方式相同,例如在FC1中使用区域符号名的编程,示例如图9-42所示。
图9-42 在程序块中使用区域符号名编程
使用区域符号名访问数组、结构体等复合数据类型与共享符号名的表示方式相同,变量的从属关系也是使用符号“.”隔开。
3.区分共享符号名与区域符号名
如果共享符号名与区域符号名相同,在程序块中不会产生地址冲突,共享符号名被“”符号括起来,区域符号名前自动添加“#”符号,这样可以区分两者之间的符号名。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。