您现在的位置是:首页 > PLC技术 > PLC技术
STEP 7的读系统状态表
来源:艾特贸易2018-04-28
简介系统状态表 (SZL) 描述了可编程序控制器当前的状态。使用信息功能可以读状态表但不可以修改。因为完整的状态表极其庞大,所以以子表和子表摘录的形式来实现读取操作。子表是虚拟
系统状态表(SZL)描述了可编程序控制器当前的状态。使用信息功能可以读状态表但不可以修改。因为完整的状态表极其庞大,所以以子表和子表摘录的形式来实现读取操作。子表是虚拟表,就是说,仅当存在请求时,CPU的操作系统才生成有效的表。
SZL的ID用于识别子表,它包含了表适用的模块类型、子表摘录的数目以及实际SZL子轰数目(如图1所示)。系统提供给所需的信息和指明子表对象的索引。标准的情况是,CPU提供自动化系统上的信息,但是FM和CP模块同样可以使用这些服务以便使信息有效(见模块文档)。可能的CPU的系统状态表在操作说明中描述。
图1 SZL ID的结构
1.读报头信息
使用SZL IDW#16#OFFxx就可以读取SZL子表的报头信息,而不涉及相关的数据记录,(xx=SZL子表的序号)。参数SZL_HEADER.N_DR(数据记录数目)返回一次SZL作业模块可以提供的、子表摘录的数据记录允许的最大值。对于动态子表,该值可能要比实际可读的数目大。数据记录长度由参数SZL_HEADER.LENGTHDR指定。使用报头信息中的这些数据,在启动时就能给相关的SZL子表创建一个足够大的数据缓冲器。
2.SFC 51RESYSST读SZL子表
使用系统功能SFC 51RESYSST声以读系统状态表(SZL)的子表或子表摘录。SFC 51的参数在表1中列出。
表1 SFC 51 RDSYSST的参数
REQ=“1”启动读操作,BUSY=“0”说明操作已经完成了。操作系统可以准同步地执行几个异步的读取操作,读取操作的个数取决于所使用的CPU型号。如果SFC 51通过功能值(W#16#8085)报告缺少数据源,此时必须重新发送读取请求。
参数SZL_ID和INDEX的内容与CPU型号有关。如果不需要使用参数INDEX提供信息,则其设置无关紧要。参数SZL_HEADER的数据类型为STRUCT,变量LENGTHDR(数据类型WORD)和N_DR(WORD)作为其组件。LENGTHDR包含了数据记录的长度,N_DR是所读取数据记录的序号。
使用参数DR来指定SFC 51要将数据记录输入其中的变量或数据区。比如,P#DB200.DBX0.0 WORD 256会在数据块DB 200中提供一个从DBB0.0开始的、长度为256字的数据区。如果提供的区域不够大,也能够输入其所能容纳的尽可能多的数据记录。只能传输完整的数据记录,指定的区域必须最少能够容纳一个数据记录。
(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:)
点击排行
