6ES7288-1SR60-0AA0现货西门子代理
- 供应商
- 湖南西控自动化设备有限公司
- 认证
- 西门子
- S7-200SMART
- CPU
- 6ES72881SR600AA0
- 德国
- 36 输入/24 输出
- 联系电话
- 17838383235
- 手机号
- 17838383235
- 经理
- 徐嘉泉
- 所在地
- 中国(湖南)自由贸易试验区长沙片区开元东路1306号开阳智能制造产业园(一期)4#栋301
- 更新时间
- 2025-02-16 08:50
6es7288-1sr60-0aa0现货西门子代理
6es7288-1sr60-0aa0现货西门子代理
6es7288-1sr60-0aa0现货西门子代理
一、概述说明
工控编程是面向设备的编程,一般很多工程师在编程过程中没有程序架构的意识,所以对于一些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的内容可以自我定义并形成行业的标准功能块。