工控编程吧

标题: 如何读取冗余控制器状态灯 [打印本页]

作者: baikhgmv    时间: 2016-11-18 11:28
标题: 如何读取冗余控制器状态灯
如何读取冗余控制器状态灯

问题:如果读取冗余控制器状态灯的状态?

回答:本文将简单介绍通过编程的方式如何读取冗余控制器的状态灯,并附录相关源代码。
控制器运行过程中,控制器内部的各种不同信息都被保存在CPU的内部存储器中,并根据运行情况由控制器内部的操作系统实时进行更新。在冗余控制器中,这些内部信息也包含了冗余控制器的状态灯信息。
在系统提供的系统功能SFC中,功能SFC51(RDSYSST)专门用于读取系统的状态信息。该功能块提供的SSL-ID功能码输入管脚用于设置需要读取的信息类型,例如,16#0013用于读取控制器内部工作内存分配情况;16#00B1用于读取模块的诊断信息;而16#0074则可以用于读取控制器的状态灯(包括单CPU和冗余CPU)。

注意:功能码16#0019仅仅支持单CPU和冗余CPU单机模式,不能用在普通的冗余CPU中。关于SFC51的详细帮助请参考Step7在向帮助或有个系统提供的系统功能介绍。

数据类型
REQ
INPUT
BOOL
REQ = 1:启动处理
SSL-ID
INPUT
WORD
需要读取的系统状态功能码
INDEX
INPUT
WORD
部分功能码中对象的类型或编号
RET_VAL
OUTPUT
INT
如果执行SFC时出错,则RET_VAL将包含出错代码
BUSY
OUTPUT
BOOL
TRUE:尚未完成读取
SSL_HEADER
OUTPUT
STRUCT
数据记录信息:
LENTHDR:单条数据记录长度
N_DR:DR中记录的数据记录的条数
DR
OUTPUT
ANY
读取的数据记录存储区域:
•如果仅读取了SSL列表的单条信息,则不能评估DR的值,而只能评估SSL_HEADER的值。
•否则,LENTHDRN_DR的乘积为已在DR中存储的字节数

表1. SFC51接口


SFC51的输入/输出接口如上表所示,其中SSL-ID用于指定需要读取的信息类型(功能码);部分功能码支持单条数据记录的读取,则此时可以通过INDEX管脚输入;SSL_HEADER指示读取的数据记录的长度及数据记录的条数;DR中则为读取的数据记录的存储空间;

> 使用SSL-ID=16#0074读取冗余CPU的状态灯时,SSL_HEADER数据结构中LENTHDR= 16#0004,即每条数据记录占用4个字节,具体结构如下表所示:

(, 下载次数: 2)