说明
可使用指令“RD_SINFO”读取
上一次调用的但尚未执行完成的 OB 和
上一次启动的启动 OB 中的启动信息。
两种情况下都没有时间戳。如果在 OB 100、OB 101 或 OB 102 中进行调用,则将返回两个相同的启动信息。
参数
下表列出了“RD_SINFO”指令的参数:
[tr][td]
参数
[/td][td]
声明
[/td][td]
数据类型
[/td][td]
存储区
[/td][td]
说明
[/td][/tr][tr][td]
RET_VAL
[/td][td]
Return
[/td][td]
INT
[/td][td]
I、Q、M、D、L
[/td][td]
错误信息
[/td][/tr][tr][td]
TOP_SI
[/td][td]
Output
[/td][td]
VARIANT
[/td][td]
D、L
[/td][td]
当前 OB 的启动信息
[/td][/tr][td]
START_UP_SI
[/td][td]
Output
[/td][td]
VARIANT
[/td][td]
D、L
[/td]
上一次启动时启动 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 |
结构
下表列出了各结构中结构元素含义:
<option selected="" value="all">所有表格</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_ed93adca-b9a5-4949-92e4-be76b6bea87f_3">SI_classic 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_ec1cbb94-77b3-d212-be5f-89a56cab066b_4">SI_none 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_3c177b63-c9d0-6c39-ed3b-ad779408a189_5">SI_ProgramCycle 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_9a269fc8-e9ba-2649-68cf-b34a3604d36f_6">SI_TimeOfDay 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_1ef39d77-a140-7fbf-4e47-cf5ede33aa1c_7">SI_Delay 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_cea3a884-14c0-cacf-fc48-2767457413b5_8">SI_Cyclic 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_70c67eac-cdc8-4568-6e95-6e6401d7b6f3_9">SI_HWInterrupt 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_358c5012-cb53-6e00-4bfa-6b97bdedde20_10">Structure SI_HWInterrupt_Extended</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_e923936b-4b5a-56e9-5367-2859ff4272f5_11">SI_Submodule 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_b0e5744f-64be-5e65-0518-534a8b123826_12">SI_SynchCycle 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_cf865078-cf7e-02ca-9446-953c058661a3_13">SI_IORedundancyError 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_487932ac-a677-8944-0b81-003ab3c401d5_14">SI_CPURedundancyError 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_afef0777-9988-e94b-5391-a567b047ea44_15">SI_TimeError 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_0b41b002-a806-e2a1-5c4a-8b169bf5268c_16">SI_DiagnosticInterrupt 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_adbbafe4-0466-4a40-b56a-ea1818b7fc98_17">SI_PlugPullModule 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_945787f9-49fa-af03-85fd-28035be24bd1_18">SI_AccessError 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_41ec23a6-8156-13aa-3b80-efc2114c76de_19">SI_StationFailure 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_0b3ac8c7-e0ef-a27e-ac22-b345195b705e_20">SI_Servo 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_26b3047b-7ebe-0691-5f72-f6f50580bc62_21">SI_Ipo 结构</option><option value="25cc87d0-69b6-4a3c-8d15-04b1b4a7526b_b4ac8f7fd2b3c9c3afbac186819966e5#121165329547_033b339e-7149-5027-4d08-6b295a047c83_22">SI_Startup 结构</option>
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 的相关本地变量之间的分配关系。
| 数据类型 | 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 的相关本地变量之间的分配关系。
| 数据类型 | 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”)。