说明
可使用指令“rd_sinfo”读取
上一次调用的但尚未执行完成的 ob 和
上一次启动的启动 ob 中的启动信息。
两种情况下都没有时间戳。如果在 ob 100、ob 101 或 ob 102 中进行调用,则将返回两个相同的启动信息。
参数
下表列出了“rd_sinfo”指令的参数:
参数 声明 数据类型 存储区 说明
ret_val return int i、q、m、d、l 错误信息
top_si output variant d、l 当前 ob 的启动信息
start_up_si output variant d、l 上一次启动时启动 ob 的
启动信息
参数 top_si 的 sdt
下表列出了参数 top_si 的 sdt:
组织块 (ob) 系统数据类型 (sdt) 系统数据类型编号
任意 si_classic 592
si_none 593
programcycleob si_programcycle 594
timeofdayob si_timeofday 595
timedelayob si_delay 596
cyclicob si_cyclic 597
processeventob si_hwinterrupt 598
si_hwinterrupt_extended 616
profileeventob
statuseventob
updateeventob si_submodule 601
synchronouscycleob si_synchcycle 602
ioredundancyerrorob si_ioredundancyerror 604
cpuredundancyerrorob si_cpuredundancyerror 605
timeerrorob si_timeerror 606
diagnosticerrorob si_diagnosticinterrupt 607
pullplugeventob si_plugpullmodule 608
peripheralaccesserrorob si_accesserror 609
rackstationfailureob si_stationfailure 610
servoob si_servo 611
ipoob si_ipo 612
startupob si_startup 613
programmingerrorob
ioaccesserrorob si_progioaccesserror 614
cpuredundancyerrorob si_cpuredundancyerror_v2 617
参数 start_up_si 的 sdt
下表列出了参数 start_up_si 的 sdt:
系统数据类型 (sdt) 系统数据类型编号
si_classic 592
si_none 593
si_startup 613
结构
下表列出了各结构中结构元素含义:
所有表格si_classic 结构si_none 结构si_programcycle 结构si_timeofday 结构si_delay 结构si_cyclic 结构si_hwinterrupt 结构structure si_hwinterrupt_extendedsi_submodule 结构si_synchcycle 结构si_ioredundancyerror 结构si_cpuredundancyerror 结构si_timeerror 结构si_diagnosticinterrupt 结构si_plugpullmodule 结构si_accesserror 结构si_stationfailure 结构si_servo 结构si_ipo 结构si_startup 结构
si_classic 结构
结构元素 数据类型 说明
ev_class byte 位 0 至 3:事件 id
位 4 至 7:事件类别
ev_num byte 事件编号
priority byte 优先级编号
(b#16#fe 的含义:ob 不可用或已禁用,或无法在当前操作模式中启动)
num byte ob 编号
typ2_3 byte 数据 id 2_3:
标识在 zi2_3 中输入的信息
typ1 byte 数据 id 1:
标识在 zi1 中输入的信息
zi1 word 附加信息 1
zi2_3 dword 附加信息 2_3
si_none 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
si_programcycle 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 1 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
initial_call bool ob_class = 1、30、52、61、65
remanence bool ob_class = 1
si_timeofday 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 10 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
caughtup bool ob_class = 10
secondtime bool ob_class = 10
si_delay 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 20 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
sign word ob_class = 20
si_cyclic 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 30 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
initial_call bool ob_class = 1、30、52、61、65
event_count int ob_class = 30、51、52、61、65、91、92
si_hwinterrupt 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 40 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
laddr hw_io ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
usi word ob_class = 40
ichannel usint ob_class = 40
eventtype byte ob_class = 40
structure si_hwinterrupt_extended
结构元素 数据类型 字节 说明
si_format usint 0 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 40 1 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint 2 ob 编号(1 到 32767)
laddr hw_io 4 ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
usi word 6 ob_class = 40
ichannel usint 8 ob_class = 40
eventtype byte 9 ob_class = 40
pointaddr dword 12 ob_class = 40
si_submodule 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
laddr hw_io ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
slot uint ob_class = 55、56、57
specifier word ob_class = 55、56、57
si_synchcycle 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 61 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
initial_call bool ob_class = 1、30、52、61、65
pip_input bool ob_class = 61、91、92
pip_output bool ob_class = 61、91、92
io_system usint ob_class = 61、91、92
event_count int ob_class = 30、51、52、61、65、91、92
synccycletime ltime 计算得到的循环时间
si_ioredundancyerror 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 70 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
laddr hw_any ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
event_class byte ob_class = 70、83、85、86
fault_id byte ob_class = 70、80、83、85、86
si_cpuredundancyerror 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 72 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
switch_over bool ob_class = 72
si_timeerror 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 80 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
fault_id byte ob_class = 70、80、83、85、86
csg_obnr ob_any ob_class = 80
csg_prio uint ob_class = 80
si_diagnosticinterrupt 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 82 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
io_state word ob_class = 82
laddr hw_any ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
channel uint ob_class = 82
multierror bool ob_class = 82
si_plugpullmodule 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 83 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
laddr hw_io ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
event_class byte ob_class = 70、83、85、86
fault_id byte ob_class = 70、80、83、85、86
si_accesserror 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 85 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
laddr hw_io ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
event_class byte ob_class = 70、83、85、86
fault_id byte ob_class = 70、80、83、85、86
io_addr uint ob_class = 85
io_len uint ob_class = 85
si_stationfailure 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 86 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
laddr hw_io ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
event_class byte ob_class = 70、83、85、86
fault_id byte ob_class = 70、80、83、85、86
si_servo 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 91 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
initial_call bool ob_class = 1、30、52、61、65
pip_input bool ob_class = 61、91、92
pip_output bool ob_class = 61、91、92
io_system usint ob_class = 61、91、92
event_count int ob_class = 30、51、52、61、65、91、92
synchronous bool
si_ipo 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 92 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
initial_call bool ob_class = 1、30、52、61、65
pip_input bool ob_class = 61、91、92
pip_output bool ob_class = 61、91、92
io_system usint ob_class = 61、91、92
event_count int ob_class = 30、51、52、61、65、91、92
reduction uint ob_class = 92
si_startup 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 100 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
lostretentive bool ob_class = 100
lostrtc bool ob_class = 100
si_progioacesserror 结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
blocknr uint ob_class = 121、122
reaction usint ob_class = 121、122
fault_id byte ob_class = 121、122
blocktype usint ob_class = 121、122
area usint ob_class = 121、122
dbnr db_any ob_class = 121、122
csg_obnr ob_any ob_class = 121、122
csg_prio usint ob_class = 121、122
width usint ob_class = 121、122
si_cpuredundancyerror_v2 的结构
结构元素 数据类型 说明
si_format usint 16#ff = 无信息
16#fe = 优化启动信息
ob_class usint := 72 “无信息”或“优化启动信息”的 ob 类别
ob_nr uint ob 编号(1 到 32767)
laddr hw_any ob_class = 40、51、55、56、57、70、82、83、85、86、91、92
event_class byte ob_class = 70、83、85、86
fault_id byte ob_class = 70、80、83、85、86
说明
如果创建的块属性为“standard”,则 si_classic 结构中指定的结构元素内容将与 ob 临时变量的内容相同。
但请注意,各 ob 的临时变量可具有不同名称和数据类型。另请注意,每个 ob 的调用接口都包含有关 ob 请求的日期与时间的附加信息。
结构元素 ev_class 的位 4 至 7 包括事件类别。可以是下面的值:
1:来自标准 ob 的启动事件
2:来自同步错误 ob 的启动事件
3:来自异步错误 ob 的启动事件
结构元素 priority 提供属于当前 ob 的优先级。
除这两个元素之外,num 也很重要。num 包含当前 ob 或最后启动的启动 ob 的编号。
参数 ret_val
下表列出了 ret_val 参数值的含义:
错误代码* (w#16#...) 说明
8081 当前 ob 的启动信息与指定的系统数据类型不匹配。
8083 上一次启动中启动 ob 的启动信息与指定的系统数据类型不匹配。
示例
ob 80 是最后调用的 ob 且尚未处理完,而 ob 100 是最后启动的启动 ob。
下表列出了指令“rd_sinfo”的参数 top_si 的结构元素与 ob 80 的相关本地变量之间的分配关系。
top_si
结构元素 数据类型 ob 80 - 相关本地变量 数据类型
ev_class byte ob80_ev_class byte
ev_num byte ob80_flt_id byte
priority byte ob80_priority byte
num byte ob80_ob_numbr byte
typ2_3 byte ob80_reserved_1 byte
typ1 byte ob80_reserved_2 byte
zi1 word ob80_error_info word
zi2_3 dword ob80_err_ev_class byte
ob80_err_ev_num byte
ob80_ob_priority byte
ob80_ob_num byte
下表列出了指令“rd_sinfo”的参数 start_up_si 的结构元素与 ob 100 的相关本地变量之间的分配关系。
start_up_si
结构元素 数据类型 ob 100 - 本地变量 数据类型
ev_class byte ob100_ev_class byte
ev_num byte ob100_strtup byte
priority byte ob100_priority byte
num byte ob100_ob_numbr byte
typ2_3 byte ob100_reserved_1 byte
typ1 byte ob100_reserved_2 byte
zi1 word ob100_stop word
zi2_3 dword ob100_strt_info dword
示例
在以下示例中,读取上次调用的程序循环 ob 的启动信息,以及 cpu 中上次启动的启动 ob 的启动信息。
在全局数据块中,创建 3 个变量进行数据存储。
在 ob1 中,调用指令“rd_sinfo”。互连“rd_sinfo”指令的参数,如下所示:
在本示例中,仅使用 cpu 的一个 ob。
输入参数 en 返回信号状态“true”时,启动指令“rd_sinfo”。“rd_sinfo”指令将读取上次调用的程序循环 ob (ob1) 中的启动信息;并输出到输出参数 top_si(“si_programmcycle”)中。将在输出参数
start_up_si (“si_startup”) 处,中输出上一次启动时启动 ob 的启动信息。
根据参数“si_format”的值,ob1 可使用优化启动信息。此外,该指令还将读取该 ob 的类别(“ob_class”)以及指定的 ob 编号(“ob_nr”)。由于 cpu 未使用任何启动 ob,因此不会读取启动 ob(“si_startup”)的编号(“ob_nr”的值为“0”)。并显示该启动 ob 的标准值(“si_format”,“ob_class”)。
输出参数 ret_val(“returnvalue”)可用于指示示例的执行过程中无错误(值为“0”)。
四部门明确App收集个人信息范围
STM32F407串口通信基本内容
回弹力测试仪和回弹测试仪的对比,它们的区别是什么
N沟道场效应管HC3400M产品资料
电压开关中常见问题及解决方案
西门子博图RD_SINFO:读取当前OB启动信息
中微爱芯高亮恒流LED产品AiP33628、AiP33632简介
NXP边缘处理器是如何保证公共安全的
浅谈IP网络广播系统
VCS ICO的主要功能有哪些呢?
一文解析STM32内存管理和堆栈的认知与理解
5G和机器人是怎么帮助打造智慧医院的
2021年全球5G手机出货量或将超6亿部
笔记本AGP插槽标准
TK3030C:三相电能表检定装置
墨奇科技非接触3D指纹采集仪获认定证书
DC电源模块保护内外部电路至关重要
如何解释DS1847/DS1848温度读数-How to I
LCD常用术语对照表
中控智慧科技智能云考勤机FU100简介