西门子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的数据块,用于实例化上述自定义的数据类型。
PLC中建立一个全局数据块SystemInfo,该数据块为源自数据类型typeSystemInfo的数据块,用于实例化上述自定义的数据类型。
二、程序块说明
程序块名称
程序中实现上述功能的功能块为FB_SystemInfo,功能块图如下所示
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自带的一致。
2.3输出接口
程序块没有输出接口,所有的逻辑结果都直接在程序中赋值到全局数据块SystemInfo中,所以全局数据块SystemInfo是被绑定在一起,作为程序块的逻辑结果的输出。
三、程序功能说明
模块信息
CPU模块信息主要包括CPU的名字、Mac地址、Ip地址、子网掩码以及网关地址等等,在数据类型中的名字为CPUInfo。
由于CPU的相关信息配置好后,这些数据就不会改变,所以这些信息只会在CPU启动的***个循环周期读取。
当设备信息读取成功或读取出现故障,CPU启动后的***个循环的标志位FirstScan(默认值为TRUE)会被复位。若读取出现故障,设备信息的读取需通过引脚i_ManualReadInfo手动读取。
由于CPU的相关信息配置好后,这些数据就不会改变,所以这些信息只会在CPU启动的***个循环周期读取。
当设备信息读取成功或读取出现故障,CPU启动后的***个循环的标志位FirstScan(默认值为TRUE)会被复位。若读取出现故障,设备信息的读取需通过引脚i_ManualReadInfo手动读取。
Date&TimeInfo是各种格式的日期信息;
NewDate&TimeInfo是年、月、日、小时、分钟、秒的脉冲信号,即对应的每一个新的日期或时间发生时候,这些变量会保持一个周期,即对应的脉冲信号。
日期和时间以及对应的脉冲信号,都是基于CPU提供的系统指令RD_LOC_T读取并处理而来。
3.3时钟信息
CPU时钟信息主要包括0.5Hz到10Hz的波形信号以及对应的时间脉冲信号,0.5Hz到10Hz信号对应的脉冲时间基数分别为0.05到1.0秒,在数据类型中的名字为ClockInfo和OnePulse。
(本站http://siemens-zuan.gongboshi.com/,提供西门子S7-1200系列PLC,S7-1500系列PLC)
(本站http://siemens-zuan.gongboshi.com/,提供西门子S7-1200系列PLC,S7-1500系列PLC)