0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

西门子博图RD_SINFO:读取当前OB启动信息

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-11-20 14:31 次阅读

说明

可使用指令“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 的结构元素与 OB80 的相关本地变量之间的分配关系。

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 的结构元素与 OB100 的相关本地变量之间的分配关系。

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 个变量进行数据存储。

2130d568-8744-11ee-939d-92fbcf53809c.png

在 OB1 中,调用指令“RD_SINFO”。互连“RD_SINFO”指令的参数,如下所示:

在本示例中,仅使用 CPU 的一个 OB。

213f2c4e-8744-11ee-939d-92fbcf53809c.png

输入参数 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”)。

214cafe0-8744-11ee-939d-92fbcf53809c.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 西门子
    +关注

    关注

    93

    文章

    3008

    浏览量

    115625
  • 存储
    +关注

    关注

    13

    文章

    4261

    浏览量

    85669
  • 指令
    +关注

    关注

    1

    文章

    606

    浏览量

    35649

原文标题:西门子博图RD_SINFO:读取当前 OB 启动信息

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子plc接线原理

    西门子plc接线图
    发表于 02-21 14:51 1950次下载
    <b class='flag-5'>西门子</b>plc接线原理<b class='flag-5'>图</b>

    西门子变频器原理

    西门子变频器原理
    发表于 05-26 00:04 2650次下载

    畅销西门子助听器价格表_西门子助听器价格大全

    畅销西门子助听器价格表_西门子助听器价格大全 1、西门子盒式助听器 AMIGA 176AO Pocket AMIGA 176AO 西门子助听器价格:441元
    发表于 08-23 12:19 1.4w次阅读
    畅销<b class='flag-5'>西门子</b>助听器价格表_<b class='flag-5'>西门子</b>助听器价格大全

    西门子是哪个国家的品牌_西门子发明了什么

    本文开始介绍了西门子是哪个国家的品牌以及西门子的发展历史,其次介绍了西门子的发明成果,最后对西门子的家电进行了分析。
    的头像 发表于 04-04 08:45 5.3w次阅读

    博世和西门子哪个好_博世和西门子的关系

    本文开始阐述了博世和西门子的关系以及分析了西门子和博世哪个更好,其次分析了西门子和博世的冰箱哪个更好,最后介绍了博世和西门子家电集团在中国的发展。
    的头像 发表于 04-04 09:30 15.8w次阅读

    读取西门子PLC系统时间的程序资料概述

    本文档的主要内容详细介绍的是读取西门子PLC系统时间的程序资料概述。
    发表于 07-20 16:35 23次下载
    <b class='flag-5'>读取</b><b class='flag-5'>西门子</b>PLC系统时间的程序资料概述

    西门子PLC_CPU的冷启动、暖启动、热启动的区别

    西门子PLC_CPU的冷启动、暖启动、热启动的区别介绍。
    发表于 04-30 10:33 10次下载

    如何实现远程调试西门子PLC

    设备现场的PLC程序需要调整工艺流程,或者有小故障需要排除,就需要工程师到现场。随着物联网技术的成熟,通过4G网络远程监控和调试PLC已经常规化。西门子的PLC是市场上占有率最高的,差不多40%的市场占有率。那如何实现软件远
    的头像 发表于 10-13 09:14 4531次阅读
    <b class='flag-5'>博</b><b class='flag-5'>图</b>如何实现远程调试<b class='flag-5'>西门子</b>PLC

    西门子PLC的暖启动、冷启动、热启动有何区别

    西门子PLCCPU里的暖启动,冷启动,热启动,它们之间到底有什么本质的区别?在实际应用中又有何真正的用处呢?
    发表于 11-04 10:16 2726次阅读

    西门子PLC编程软件功能及安装

    、编程、测试、启动和维护、文件建档、运行和诊断功能等功能,性能稳定高效。 西门子PLC编程软件介绍 西门子plc编程软件,德国西门子推出的一款专业的编程软件,采用plc编程,plc编程
    发表于 04-17 14:31 8次下载
    <b class='flag-5'>西门子</b>PLC编程软件功能及安装

    西门子TIA的Modbus主站通讯

    西门子PLC因其市场占有率较高,且被广大用户使用,应用比较广泛,而其TIA平台得到了推广应用,本文将介绍使用CP341进行Modbus 主站通讯
    的头像 发表于 05-19 09:15 1900次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>博</b><b class='flag-5'>图</b>TIA的Modbus主站通讯

    西门子OB启动信息配置步骤

    为了防止错误,用户不应更改此临时标记部分的结构(OB的起始信息-前20个字节),因为在写入此区域时,操作系统总是采用定义的起始信息
    的头像 发表于 11-07 12:43 1067次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>博</b>途<b class='flag-5'>OB</b>的<b class='flag-5'>启动</b><b class='flag-5'>信息</b>配置步骤

    西门子SCL练习1:使用FC计算平均值

    西门子SCL练习1:使用FC计算平均值
    的头像 发表于 01-02 10:25 2603次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>博</b><b class='flag-5'>图</b>SCL练习1:使用FC计算平均值

    西门子PLC中OB块的功能详解

    西门子PLC(Programmable Logic Controller)作为工业自动化领域的核心设备,其内部功能强大、应用广泛。在西门子PLC中,OB块(Organization Block,组织
    的头像 发表于 06-15 11:27 4096次阅读

    S7协议读取西门子S7-200 Smart PLC数据

    西门子S7-200 Smart PLC因其稳定性和易用性而广泛应用。通过使用S7协议,可以实现对PLC数据的高效读取和控制。本文将详细介绍如何使用S7协议读取西门子S7-200 Sma
    的头像 发表于 07-11 11:55 4888次阅读
    S7协议<b class='flag-5'>读取</b><b class='flag-5'>西门子</b>S7-200 Smart PLC数据