前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >S7-1200与分布式IO设备的诊断功能

S7-1200与分布式IO设备的诊断功能

作者头像
科控物联
发布于 2022-03-29 12:33:49
发布于 2022-03-29 12:33:49
2.7K0
举报
文章被收录于专栏:科控自动化科控自动化

S7-1200与分布式IO设备的诊断功能

S7-1200 CPU V2.1 开始支持分布式 IO 设备的诊断功能,可使用 DeviceStates 和 ModuleStates 指令对分布式 IO 设备的站状态和子模块进行诊断。本文使用 1214C V4.4 CPU 和 ET200SP 的 PN 通信为例进行说明(DP通信同样适用)。

硬件:

  1. CPU 1214C DC/DC/DC,V4.4,一台
  2. ET200SP 分布式 IO 站,PN 接口,两套

软件:

  1. TIA Portal V16

使用 TIA Portal 创建项目

使用 TIA Portal 创建一个新项目,正确配置,下载后,进入网络视图,所有站点状态正常。如图 1 所示。

图 1 网络视图

注意:分布式 IO 为 PN 子站时,可在“网络概览”中可以查看分布式 IO 的设备编号。

1 使用 DeviceStates 指令对分布式 IO 子站进行诊断

1-1 创建全局数据块,用于存储状态数据

在全局数据块中创建数据类型为 Array of BOOL 数组,共计1024个元素,如图 2 所示。

『注意』对于DP主站系统,相关的诊断功能与PROFINET系统类似。只是需要使用DP系统兼容的变量,例如创建128个元素的 Array of BOOL 数组,用于存储DP站的状态,类似情况下文不再赘述。

图 2 创建全局数据块

1-2 编程

在 OB1 中调用 DeviceStates 指令,双击 LADDR 引脚,选择需要诊断的 IO 系统,如图 3 所示。

图 3 调用 DeviceStates 指令

本例中选择PN IO系统硬件标识符,并将 MODE 设置为2,STATE 填写上述定义的全局数据块数组。如图 4 所示。

图 4 填写相应的引脚

表1 DeviceStates指令引脚说明

参数 LADDR

使用 LADDR 参数通过硬件标识符选择 PROFINET IO 或 DP 主站系统。 硬件标识符位于: PROFINET IO 或 DP 主站系统属性的网络视图中。 或数据类型为 HW_IOSYSTEM 的所列系统常量的 PLC 变量表中

参数 MODE

使用 MODE 参数可读取状态信息。可读取整个 PROFINET IO 或 DP 主站系统的下列一条状态信息: 1: IO 设备/DP 从站已组态 2: IO 设备/DP 从站故障 3: IO 设备/DP 从站已禁用 4: IO 设备/DP 从站存在 5: 出现问题的 IO 设备/DP 从站。

参数 STATE

通过 STATE 参数,输出由 MODE 参数选择的 IO 设备/DP 从站的状态。 如果使用 MODE 选择的状态适用于 IO 设备/DP 从站,则在 STATE 参数中将下列位设置为“1”: 位 0 = 1:组显示。至少有一个 IO 设备/DP 从站的第 n 位设置为“1”。 位 n = 1:通过 MODE 选择的状态将应用到 IO 设备/DP 从站。 对于 PROFINET IO 系统,第 n 位对应于相应 IO 设备的设备编号(请参见设备视图和网络视图中的 PROFINET 接口属性)。 对于 PROFINET DP 系统,第 n 位对应于 DP 从站的 PROFIBUS 地址(请参见设备视图和网络视图中的 DP 从站属性)。 使用“BOOL”或“Array of BOOL”作为数据类型: 要仅输出状态信息的组显示位,可在 STATE 参数中使用 BOOL 数据类型。 要输出所有 IO 设备/DP 从站的状态信息,请使用下列长度的 Array of BOOL: 对于 PROFINET IO 系统:1024 位 对于 DP 主站系统:128 位

  • PROFINET IO 或 DP 主站系统属性的网络视图中。
  • 或数据类型为 HW_IOSYSTEM 的所列系统常量的 PLC 变量表中。

参数 MODE使用 MODE 参数可读取状态信息。可读取整个 PROFINET IO 或 DP 主站系统的下列一条状态信息:

  • 1: IO 设备/DP 从站已组态
  • 2: IO 设备/DP 从站故障
  • 3: IO 设备/DP 从站已禁用
  • 4: IO 设备/DP 从站存在
  • 5: 出现问题的 IO 设备/DP 从站。

参数 STATE通过 STATE 参数,输出由 MODE 参数选择的 IO 设备/DP 从站的状态。 如果使用 MODE 选择的状态适用于 IO 设备/DP 从站,则在 STATE 参数中将下列位设置为“1”:

  • 位 0 = 1:组显示。至少有一个 IO 设备/DP 从站的第 n 位设置为“1”。
  • 位 n = 1:通过 MODE 选择的状态将应用到 IO 设备/DP 从站。
    • 对于 PROFINET IO 系统,第 n 位对应于相应 IO 设备的设备编号(请参见设备视图和网络视图中的 PROFINET 接口属性)。
    • 对于 PROFINET DP 系统,第 n 位对应于 DP 从站的 PROFIBUS 地址(请参见设备视图和网络视图中的 DP 从站属性)。

    使用“BOOL”或“Array of BOOL”作为数据类型:

  • 要仅输出状态信息的组显示位,可在 STATE 参数中使用 BOOL 数据类型。
  • 要输出所有 IO 设备/DP 从站的状态信息,请使用下列长度的 Array of BOOL:
    • 对于 PROFINET IO 系统:1024 位
    • 对于 DP 主站系统:128 位

1-3 测试

将程序下载到 PLC 中。

监控全局数据块 devicestate。如图 5 所示。

图 5 IO 系统正常

当 IO device_2 故障时(掉电或网线拔除导致丢站),state[2]=1。如图 6 所示。

图 6 IO device_2 故障

当 IO device_1 和 IO device_2 故障时(掉电或网线拔除导致丢站),state[1]=1 和 state[2]=1。如图 7 所示。

图 7 IO device_1 和 IO device_2 故障

2 使用 ModuleStates 指令对分布式 IO 子模块进行诊断

2-1 创建全局数据块,用于存储状态数据

在全局数据块中创建数据类型为 Array of BOOL 数组,共计128个元素。如图 8 所示。

图 8 创建全局数据块

2-2 编程

在 OB1 中调用 ModuleStates 指令,双击 LADDR 引脚,选择需要诊断的分布式 IO 站。如图 9 所示。

图 9 调用 ModuleStates 指令

本例中选择PN IO设备硬件标识符,并将 MODE 设置为2,STATE 填写上述定义的全局数据块数组。如图 10 所示。

图 10 填写相应的引脚

表2 ModuleStates指令引脚说明

参数 LADDR

使用 LADDR 参数通过站硬件标识符选择 IO 设备或 DP 从站。 硬件标识符位于: IO 设备站或 DP 从站属性的网络视图中。 或数据类型为 HW_DEVICE(对于 IO 设备)或 HW_DPSLAVE(对于 DP 从站)的所列系统常量的 PLC 变量表中。

参数 MODE

使用 MODE 参数可读取状态信息。可读取模块的下列一条状态信息: 1: 模块已组态 2: 模块故障 3: 模块禁用 4: 模块存在 5: 模块中存在故障。

参数 STATE

STATE 参数输出使用 MODE 参数选择的模块状态。 如果使用 MODE 选择的状态适用于某个模块,那么下列位将设置为“1”: 位 0 = 1:组显示。至少一个模块的第 n 位设置为“1”。 位 n = 1:使用 MODE 选择的状态将应用到插槽 n-1(例如:位 3 对应插槽 2)中的模块。 使用“BOOL”或“Array of BOOL”作为数据类型: 要仅输出状态信息的组显示位,可在 STATE 参数中使用 BOOL 数据类型。 要输出所有模块的状态信息,请使用长度为 128 位的 Array of BOOL。

  • IO 设备站或 DP 从站属性的网络视图中。
  • 或数据类型为 HW_DEVICE(对于 IO 设备)或 HW_DPSLAVE(对于 DP 从站)的所列系统常量的 PLC 变量表中。

参数 MODE使用 MODE 参数可读取状态信息。可读取模块的下列一条状态信息:

  • 1: 模块已组态
  • 2: 模块故障
  • 3: 模块禁用
  • 4: 模块存在
  • 5: 模块中存在故障。

参数 STATESTATE 参数输出使用 MODE 参数选择的模块状态。 如果使用 MODE 选择的状态适用于某个模块,那么下列位将设置为“1”:

  • 位 0 = 1:组显示。至少一个模块的第 n 位设置为“1”。
  • 位 n = 1:使用 MODE 选择的状态将应用到插槽 n-1(例如:位 3 对应插槽 2)中的模块。

使用“BOOL”或“Array of BOOL”作为数据类型:

  • 要仅输出状态信息的组显示位,可在 STATE 参数中使用 BOOL 数据类型。
  • 要输出所有模块的状态信息,请使用长度为 128 位的 Array of BOOL。

2-3 测试

将程序下载到 PLC 中。

监控全局数据块 modulestate。如图 11 所示。

图 11 分布式 IO 站所有子模块正常

当 IO device_1 站插槽编号1的子模块故障时(损坏或被拔除),state[2]=1。如图 12 所示。

图 12 插槽编号1子模块故障

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科控物联 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
打造自己的开源组件:如何将 Starter 发布到 Maven Central?
本文将详细介绍如何将你开发的 Java Starter 组件发布到 Maven Central,涵盖从项目准备、GPG 签名、Sonatype 注册、Nexus 配置、到最终发布的完整流程。通过一个真实项目为例,带你快速掌握整个发布链路,避免踩坑,助你轻松构建自己的开源组件生态!
一只牛博
2025/05/31
610
打造自己的开源组件:如何将 Starter 发布到 Maven Central?
GPG入门教程
前两篇文章,我介绍了RSA算法。 今天,就接着来看,现实中怎么使用这个算法,对信息加密和解密。这要用到GnuPG软件(简称GPG),它是目前最流行、最好用的加密工具之一。 一、什么是GPG 要了解什么是GPG,就要先了解PGP。 1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就
ruanyf
2018/04/13
2K0
GPG入门教程
GPG基本使用方法
GnuPG是用于加密、数字签名及产生非对称匙对的软件。下载与安装方式:gpgtools
Huramkin
2018/09/17
1.8K0
The GNU Privacy Guard
对比《连城诀》,第一步是「唐诗选辑」(不过用口水解密不够文雅),第二部是「唐诗剑法」(没有师傅认证亲传武功是不行的),最后才解密出「江陵城南偏西天宁寺大殿佛像向之虔诚膜拜通灵祝告如来赐福往生极乐」。 当然也有类似凌退思这样“密码字典暴力破解”的方法 :-) 所以我们的 GPG 钥匙长度要设置的长长长一些。
筱竼
2022/08/09
4.9K0
The GNU Privacy Guard
[Centos7]使用GPG加密和解密文件
简介 GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计。GnuPG用于加密、数字签名及产生非对称钥匙对的软件。 2.GPG公钥生成 输入“gpg —gen-key”开始生成
贰叁壹小窝
2020/07/22
4.3K0
GPG 101
提到GPG,首先需要了解PGP。PGP是一种提供加密和数字签名服务的协议(Pretty Good Privacy),而GPG是PGP协议的实现。PGP支持多种加密算法,如AES、RSA、ECC等。
timerring
2025/01/26
830
对下载软件/文件进行校验的工具(Checksum and GPG)
之前装软件一直都没有验证安装文件的习惯,信息安全意识不高,碰巧最近没啥事,微微写篇文章记录下校验工具(互联网http、https、ftp 服务并没有那么安全,是可以被劫持篡改。老装软件选手了,是该养成个校验文件的习惯了)。
Cloud-Cloudys
2023/10/21
2.6K0
对下载软件/文件进行校验的工具(Checksum and GPG)
开源:上传 Jar 包至 Maven 中央仓库
最近我将服务发现组件开源了:cloud-discovery,分享一下 Jar 包上传中央仓库过程遇到的问题与总结。需要说明的是,在下面两篇文章中已经将步骤写的非常清楚了,本文主要记录的是我在操作过程中遇到的一些坑,以供参考。
杨同学technotes
2022/12/01
8600
Using a GPG Key and Ssh Auth
在我的一台服务器被数不清的脚本小子暴力尝试登陆N次后,我下定决心将所有的开发环境换成统一的ssh key;并禁止用户登陆;
happy123.me
2019/12/30
1.7K0
如何做一名Apache Release Manager
近期,Apache SeaTunnel经过几个月的迭代和架构升级,终于迎来的v2的第一个正式版本2.3.0,我也有幸作为本次的Release Manager,体验了一把从0到1的Apache发版流程,不得不说Apache基金会在项目的版本管理这块有着完善的规范和严谨的流程,整个发版过程周期很长,其中也踩了不少的坑,俗话说好记性不如烂笔头,所以笔者写了一篇文章来记录整个过程(以Apache SeaTunnel为例),希望这篇文章能够让小白快速入门Apache项目版本管理和发布。
tyrantlucifer
2023/03/09
6770
如何做一名Apache Release Manager
关于把自己的Jar包开源到Maven仓库的问题
首先要做的是申请上传资格,就是要在sonatype平台上进行申请。注册成功后,登录,然后会提示选择语言,这个时候就可以选择中文了,下文截图均为中文页面。
全栈开发日记
2022/05/13
8020
关于把自己的Jar包开源到Maven仓库的问题
Maven 中央仓库提交Jar包全程指南
本文记录一下将jar上传到maven中央仓库的全过程,文中项目依托在github上,使用的是mac环境 (关于maven、jdk的环境配置不属于本文内容)
一灰灰blog
2020/12/08
6820
通过GPG非对称加密工具验证ECharts发布版本实例演示,win10下Gnu Privacy Guard工具的安装和使用方法
下面这是 Echarts 的官方下载页面,下面有提供 GPG 校验的支持。 ECharts 官网
小蓝枣
2021/12/01
6700
通过GPG非对称加密工具验证ECharts发布版本实例演示,win10下Gnu Privacy Guard工具的安装和使用方法
通过GPG签名提交代码
创建证书 Neo-iMac:workspace neo$ gpg --quick-generate-key netkiller@msn.com About to create a key for:
netkiller old
2021/11/12
8510
GPG:为你的 Git 提交记录加一把锁
  GPG,全称 GNU Privacy Guard,也可以写成 GnuPG。它是一款免费开源的加密软件,也是不开源不免费的 PGP(Pretty Good Privacy)的替代品,有关详情可以查看参考资料。由于 GPG 可以用于签名或者加密,所以在文件加密、邮件加密、代码签名等方面应用较多。
zhonger
2022/10/28
1.5K0
GPG:为你的 Git 提交记录加一把锁
Ubuntu之docker安装:
装docker毕竟一般是 CentOS 我之前在大二也是在GentOS上安装的docker,这节课的内容是已经完成过的,在征得老师同意后,我准备在ubuntu上安装一个docker。
十二惊惶
2024/02/28
4740
GnuPG-1主密钥使用
GnuPG,简称GPG,是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。GnuPG 是自由软件,遵循 IETF 订定的 OpenPGP 技术标准设计,并与 PGP 保持兼容。
潇洒
2023/10/20
5530
GnuPG-1主密钥使用
加密备份 MySQL
数据库服务器运行定时备份脚本,加密备份文件,同时每日将加密后的备份文件同步到本地。
netkiller old
2021/10/20
4.4K0
GPG密钥基本使用
作者:matrix 被围观: 11 次 发布时间:2024-05-31 分类:零零星星 | 无评论 »
HHTjim 部落格
2024/06/01
3720
我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了
关于maven中央仓库 作为一个java程序员,对maven中央仓库https://mvnrepository.com/自然是非常熟悉的,毕竟咱们的应用依赖的jar大部分都来自此处,如果您想把自己开发的java库也托管在上面,让大家像使用Jackson、Spring那样轻松简单的使用您的jar,就请随本文一起操作吧; 先看看效果,下图是我发布的java库在中央仓库的搜索结果: 前提条件 由于sonatype官方会要求您在github创建一个仓库(仓库名由sonatype官方指定,以此验证您是否有gith
程序员欣宸
2021/12/07
6890
我把自己的java库发布到了maven中央仓库,从此可以像Jackson、Spring的jar一样使用它了
相关推荐
打造自己的开源组件:如何将 Starter 发布到 Maven Central?
更多 >
LV.1
奥特星打怪兽
目录
  • S7-1200与分布式IO设备的诊断功能
  • 使用 TIA Portal 创建项目
  • 1 使用 DeviceStates 指令对分布式 IO 子站进行诊断
  • 1-1 创建全局数据块,用于存储状态数据
  • 1-2 编程
  • 1-3 测试
  • 2 使用 ModuleStates 指令对分布式 IO 子模块进行诊断
  • 2-1 创建全局数据块,用于存储状态数据
  • 2-2 编程
  • 2-3 测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档