[西门子] PLC与MES数据交互之标准化西门子PLC系统功能

[复制链接]
查看8429 | 回复0 | 2024-3-29 08:12:05 | 显示全部楼层 |阅读模式
↑ 点击上方

“智能制造之家”

关注我们





会员可进入会员下载专区获取相关资料,非会员请按文末规则获取~

写在前面

前面我们已经分享了很多西门子PLC的干货文章与资料:

不懂西门子TIA Portal Openness—看这篇就够了

使用S7-1200和1500 轻松连接物联网MQTT 消息服务器

数字化双胞胎案例(西门子PLC+库卡+发那科+VNCK)—虚拟调试

OT遇见IT—西门子S7-1200/1500官方库直连SQL Sever

TIAV17+S7-1200:解析最新西门子S7CommPlus协议

S7-1500+TIA+MCD:西门子仿真与虚拟调试的硬件在环调试流程

S7-1200+SCADA:详解西门子S7协议与数据读写

工控巨头西门子、施耐德私有S7、UMAS协议解析与PLC密码破解

西门子PLC官方程序设计规范指南

今天我们分享PLC与MES数据交互之标准化西门子PLC系统功能~

一、概述说明

工控编程是面向设备的编程,一般很多工程师在编程过程中没有程序架构的意识,所以对于一些CPU的系统功能,一般都是要用的时候才会临时添加一个,比如下图程序,添加了当前程序循环时间以及特定设备的基本信息。



                          

随着工业4.0或者说数字化的时代,工控编程面临着越来越多的信息传递的功能,甚至还能做一些边缘设备用于数据的传递,这对PLC编程来说,需要处理的信息就会越来越复杂。

但PLC不像计算机系统,有很多开放式的库可以用,并且windows系统的万年历等基础功能,在PLC中都不是普遍具备的,这就需要工控编程人员能具备这种意识,在自己程序中创建自己需要的系统数据。

例如在一个大型系统中,MES需要每一个设备都向MES系统表明自己身份,将设备系统的PLC名称、IP、MAC地址等信息发送到MES系统。

若PLC程序中没有这些功能,则需要工程师每一个设备的PLC都要重新编程,或者通过手动方式填写并发送给MES系统,这样效率和代码质量都比较低下。

所以,随着数字化时代的来临,不管工程师具备不具备程序架构的意识,大家都可以在你的程序中实例化一个读取CPU的系统信息的程序块。

借鉴于计算机系统以及PLC系统本身的特点,读取CPU系统信息的功能块至少能达到以下功能:

1.     读取CPU的时钟系统并处理

2.     读取当前CPU的日期信息

3.     读取CPU的运行信息

4.     读取CPU的模块信息

西门子系列PLC的编程中,可以将类信息模块化,做成一个标准程序,其完成的内容和上述描述相同,所以在PLC中建立了数据类型typeSystemInfo用于存储系统信息。



PLC中建立一个全局数据块SystemInfo,该数据块为源自数据类型typeSystemInfo的数据块,用于实例化上述自定义的数据类型。




    二、程序块说明

    程序块名称

程序中实现上述功能的功能块为FB_SystemInfo,功能块图如下所示



2.2输入接口



i_HwId:CPU系统变量,西门子系列CPU的变量一般为“本地PN接口”。

i_ManualReadInfo:当CPU的第一个周期读取CPU的设备信息有故障的情况下,可以通过触发该变量手动读取CPU的设备信息。

i_SystemClockByte:CPU的系统时钟字节,在CPU的设置中设置。

i_SystemClockEnable:默认值为TRUE,当为TRUE的时候,读取CPU的系统时钟信号并处理。

上述两个系统时钟字节的应用需要在CPU的系统和时钟存储器中启用时钟存储器字节,并在时钟存储器字节地址中填上M寄存器的地址,一般默认为0;



由于西门子系列PLC提供了上述的字节,所以程序中也默认启用时钟字节功能。但若在调用功能块的时候,若输入引脚i_SystemClockByte为空的时候(如下图),即使引脚i_SystemClockEnable为TRUE,程序也不会使用系统时钟,而是使用引脚i_ClockEnable配置的频率生成时钟变量。

i_ClockEnable:数据类型为32个浮点型数组,可以设置最多32个Hz频率。基于西门子CPU的系统时钟提供了8个系统时钟,所以该输入也设置了默认的8个频率,其频率值和西门子PLC自带的一致,如下图Hz频率从0.5-10.0Hz。



2.3输出接口

程序块没有输出接口,所有的逻辑结果都直接在程序中赋值到全局数据块SystemInfo中,所以全局数据块SystemInfo是被绑定在一起,作为程序块的逻辑结果的输出。

    三、程序功能说明

    模块信息

CPU模块信息主要包括CPU的名字、Mac地址、Ip地址、子网掩码以及网关地址等等,在数据类型中的名字为CPUInfo。



由于CPU的相关信息配置好后,这些数据就不会改变,所以这些信息只会在CPU启动的第一个循环周期读取。



当设备信息读取成功或读取出现故障,CPU启动后的第一个循环的标志位FirstScan(默认值为TRUE)会被复位。若读取出现故障,设备信息的读取需通过引脚i_ManualReadInfo手动读取。



3.2日期信息

CPU日期信息主要包括各种格式的日期和时间,以及基于日期时间变化的对应的脉冲信号,在数据类型中的名字为Date&TimeInfo和NewDate&TimeInfo。



Date&TimeInfo是各种格式的日期信息;

NewDate&TimeInfo是年、月、日、小时、分钟、秒的脉冲信号,即对应的每一个新的日期或时间发生时候,这些变量会保持一个周期,即对应的脉冲信号。

日期和时间以及对应的脉冲信号,都是基于CPU提供的系统指令RD_LOC_T读取并处理而来。



3.3时钟信息

CPU时钟信息主要包括0.5Hz到10Hz的波形信号以及对应的时间脉冲信号,0.5Hz到10Hz信号对应的脉冲时间基数分别为0.05到1.0秒,在数据类型中的名字为ClockInfo和OnePulse。



时钟信息的处理在程序块的输入引脚中已经有对应的说明,详细请见程序块的说明。

3.4运行信息

CPU运行信息主要包括常开信号、常闭信号、CPU启动后的第一个循环以及当前周期的运行时间,在数据类型中的名字为RunInfo。



常开(AlwaysTrue)/常闭信号(AlwaysFalse)在程序中没有处理,保持变量的默认值即可。

CPU启动第一个循环周期信号(FirstScan)在CPU设备信息读取中也有说明,就是在程序的最后将firstScan的默认值(TRUE)复位为FALSE,这样改变量为TRUE的时候即CPU启动的第一个循环周期。



当前循环周期分为Int和Real两种数据类型,通过PLC提供的系统指令RUNTIME读取当前循环周期时间,并将其转换为不同的数据类型。




    四、功能块的使用

由于数据类型中有CPU的第一个扫描周期信号(FirstScan),所以该功能块建议放在主循环程序(OB1)末端调用。



放置在最后调用,其他程序中必须在第一个启动周期调用的程序就可以通过全局数据块SystemInfo中的变量"SystemInfo".RunInfo.FirstScan来处置。

当然,对于设备程序,也可以在功能块中建立一个静态变量FisrtScan处理,程序和上述类似,将该变量默认值设置为TRUE,在功能块的末端之处将其复位为FLASE,这样就可以通过FirstScan变量处理。




    五、功能块的意义

该程序块处理的信息的用处是十分丰富的,这些信息作为整个CPU系统的基本信息,为工控程序中的各种需要提供了便利的处理方式。

CPU模块信息可以直接跟MES系统交换,用于自动表明当前设备系统的身份。当HMI连接多个PLC系统的时候,也可以通过该信息选择对应的PLC操作。

时钟信息可以用于对应的延时处理,默认提供了8种时钟信息及脉冲信号,也可以在输入引脚中设置最多32种时钟信息及脉冲信号。

时钟信息还可以用于不同频率的指示需求,现场指示灯以及HMI上人机交互的状态指示。

日期信息和运行信息,只要在程序中有需求,只要将该类信息赋值给对应的变量即可,不需要再行处理。

对于工控编程,不管是否需要上述信息,都可以把FB_SystemInfo当成一个标准功能块放置在主程序末端,结构化、模块化、标准化,便于程序的使用及效率的提高。

    六、后续拓展

上述内容在Sicar的标准架构程序中是初始化程序中实现的功能,但由于汽车行业的特殊性,Sicar中的信息繁多且不便于使用。



上述内容既是Sicar中内容的总结,也是面向对象的架构程序中的基础程序块。对公众号中以往内容有过阅读的话,可以发现基于CPG的面向对象的标准架构程序中一直有FB_SystemInfo的程序块。但该程序块当时只对系统时钟和日期处理过,基于Sicar中的内容,现基本形成了一个新版本的可以实用的FB_SystemInfo的程序内容。



以上只是一个基本信息处理,但由于各个行业的特殊性,西门子PLC还提供了更多的诊断信息用于系统信息的读取。

比如如下的GetClockStatus读取CPU时钟状态,可以读取时钟同步等信息。



比如如下的RT_INFO读取运行系统统计,可以指定不同OB的运行时间、读取OB的当前运行时间、最长最短运行时间等信息。



所以,基于各个行业的特殊性及需要,FB_SystemInfo的内容可以自我定义并形成行业的标准功能块。

会员可进入会员下载专区获取相关资料~



硬核专辑

ERP/PLM/MES/SCADA/PLC/工业软件研究报告

信息化、数字化、智能制造、工业互联网解决方案

自动化、信息化、数字化、工业网络、仿真与虚拟调试入门

WinCC技术 | 工业网络 | MES技术相关| 工业巨头战略布局 | 工业通讯案例

仿真与虚拟调试 | 职业感悟、认知提升 | 自动化控制标准合集



某工业巨头MES+SCADA+APS技术方案及项目推进计划

2021-07-03



西门子、施耐德、三菱、RA:全球主要工控协议及端口解析

2021-06-30



中国工业机器人行业产业链深度研究报告

2021-06-28



XX集团工厂集成改造MES+SCADA数字化项目实施方案

2021-06-21



西门子、施耐德、三菱、汇川、中控:2021年中国工控自动化行业纵览

2021-06-19



企业信息化MES/MOM技术规范(设计、架构、信息流与行业参考)

2021-06-16



某外资工业软件巨头三维数字化工厂完整解决方案

2021-06-15



348页最新《中国工业软件产业白皮书》(附PPT解读+下载)

2021-06-09



中国工业互联网Top20城市榜单及产业链结构解析

2021-06-08



102页阿里巴巴数字智能工厂完整解决方案

2021-06-07



系统解读数字化工厂的五大核心系统(PLM\ERP\MES\WMS\DCS)

2021-06-03



智能工厂与数字化车间规划、实施与落地解决方案

2021-05-31



120页XXX集团流程优化与信息化总体规划实施方案

2021-05-28

欢迎关注"智能制造之家

免责申明:本公众号所载文章为本公众号原创或根据网络搜索编辑整理,文章版权归原作者所有。因转载众多,无法找到真正来源,如标错来源,或对于文中所使用的图片,资料,下载链接中所包含的软件,资料等,如有侵权,请联系删除~

本帖子中包含更多资源

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

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

本版积分规则