『7x24小时有问必答』
说明
可使用指令“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_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”)。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码