问题:
需要为系统函数SFC103 “DP_TOPOL”和SFC59 “RD_REC”设置哪些参数,以 识别和读取诊断转发器(DR)的拓扑数据?n
解答:
SFC103 “DP_TOPOL”系统函数触发识别所选主站系统的拓扑结构。为了使用该系统函数,C PU必须符合特定的要求,详见条目号:17452619。n
SFC103调用在DP主站系统上寻址所有的诊断转发器。n
参数 | 含义 | 数据类型 | I/O |
REQ | 触发拓扑识别 | BOOL | I |
R | 放弃拓扑识别 | BOOL | I |
DP_ID | 待识别拓扑的DP主站系统的ID(见图1) | INT | I |
RET_VAL | 作业状态的返回值 | INT | O |
BUSY | 拓扑识别尚未结束 | BOOL | O |
DPR | 报告错误的诊断转发器的PROFIBUS地址 | BYTE | O |
DPRI | 报告错误的诊断转发器的测量部分 | BYTE | O |
表1:SFC103 “DP_TOPOL”的调用参数 - 拓扑识别
调用“RD_REC”时,读取保存在诊断转发器中的数据。可以被SFC59调用读取的数据量限制为240个字节。但 是诊断转发器仅为拓扑就提供了675个字节。因此诊断转发器中的拓扑数据存放在4个不同的数据记录中,每个仅有170或165个字节大小。因 此调用四次SFC59就可以读取诊断转发器的全部拓扑数据。
参数 | 含义 | 数据类型 | I/O |
REQ | 请求读取数据记录 | BOOL | I |
IOID | 地址区域ID - DR组态为外围输入(PI) (B#16#54) | BYTE | I |
LADDR | 模块的逻辑地址 - 诊断地址和DR一起使用(见图1) | WORD | I |
RECNUM | 数据记录号(用于识别数据记录50...53的拓扑数据2h...35h的有效值) | BYTE | I |
RET_VAL | 如果在函数处理时发生错误,返回值包含一个错误代码。另外:实际传输的数据记录的长度按字节计算(可能值:165或170),如 果目标区域大于传输数据记录并且传输时没有发生错误。 | INT | O |
BUSY | 读取过程尚未结束 | BOOL | O |
RECORD | 用于所读取的数据记录的目标区域 | BYTE | O |
表2:SFC59 “RD_REC”的参数 - 读取数据记录
图 ( 56 KB ) 1: 调用SFC103和SFC59所需要的来自HW Config的参数 ( 56 KB )
编程推荐:
拓扑表格的四个数据记录的结构是一样的。如果创建一个UDT,其中结构是唯一的,那么当规定所需数据块的结构时,可以多次使用该UDT。这 样可以节省为每个数据块再次创建数据结构的时间。在改变的情况下只有UDT有待于更改。
注意事项:
关于此主题的更多信息可见STEP 7联机帮助,或者手册“用于S7-300/S7-400系统的SIMATIC系统软件和标准函数”,第 13.7节“在DP主站系统中使用SFC 103 DP_TOPOL识别总线拓扑”。手册在条目号:1214574
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc339961.html