全国服务热线 18674345958

SIMATIC西门子SITOP电源授权代理商丨重庆地区一级代理

更新时间:2024-04-26 07:00:00
价格:请来电询价
西门子:西门子电源模块代理
西门子工业电源模块:西门子电源模块一级代理
德国:西门子工业电源授权代理
联系电话:18674345958
联系手机:18674345958
联系人:李经理
让卖家联系我
详细介绍

一、概述说明

 

       工控编程是面向设备的编程,一般很多工程师在编程过程中没有程序架构的意识,所以对于一些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的内容可以自我定义并形成行业的标准功能块


联系方式

  • 地址:上海宝山 上海市奉贤区驰华路775号2幢
  • 邮编:201400
  • 电话:18674345958
  • 经理:李经理
  • 手机:18674345958
  • 微信:yingsheng16816816888
  • QQ:526554675