2023年11月30日发(作者:)
plc读取系统时钟的应⽤
PLC读取系统时钟的应⽤
⼀、PLC系统时钟校准
PLC读取系统时钟,也就是通过PLC程序读取出PLC本体的系统时间,⽤于控制。所以,在读取系统时钟前要进⾏PLC系统时
钟的校准,这需要以下两步完成:
1、校准⼯控电脑的时间:⼯控电脑也就是编写PLC程序并安装有STEP7软件,通过STEP7软件与PLC连接的电脑,即现场控
制电脑。
2、校准PLC系统时间与⼯控电脑时间相⼀致
(1)在STEP7软件中选择PLC——诊断/设置——设置时钟
(2)选中“来⾃PG/PC”即可校准PLC系统时钟
⼆、PLC读取系统时钟的⽅法
DATE_AND_TIME变量格式总的由8个字节组成
从0到6分别为:年、⽉、⽇、时、分、秒;第8个字节,⾼4位表⽰毫秒,低4位表⽰星期)。
其中星期的值为从1~7分别为星期⽇~星期六
PLC读取系统时钟的⽅法有两种,但是两种均需要调⽤SFC1这个系统功能块。
(⼀)⽅法1 使⽤OB1的临时变量OB1_DATE_TIME(在OB1的Interface–TEMP 中可以找到)
注意:如果读取的系统时钟不需要很精确的话(只需要精确到分时),可以使⽤此⽅法进⾏读取。
OB1_DATE_TIME(在OB1的Interface–TEMP中可以找到)这个变量也是DATE_AND_TIME的数据类型,对应的临时变量地
址是LB12–LB19,(也就是LD12和LD16两个双字)同样对应年–星期,符合上⾯表格中的结构。
以下是我们利⽤“OB1_DATE_TIME”读取系统时钟的程序:这个程序只能在OB1中进⾏编写
读取的时钟是存放在LD12和LD16中的(LD12存放“年-⽉-⽇-时”,LD16中依次存放“分-秒-毫秒-周”)以下是当前读取的系统时
钟的前16位LW12:表⽰2014年12⽉。
以下就是我们读取的“年-⽉-⽇-时-分-秒-毫秒-星期”:表⽰
注意:OB1临时变量读出的时间会受OB1扫描周期的影响,例如OB1扫描周期是
15ms左右,那么从OB1中读出的时间精度应该就是15ms左右。所以这种⽅法读取的系统时间有⼀定的误差。
(⼆)⽅法2
使⽤数据块定义“DATE_AND_TIME”数据类型进⾏系统时钟读取,此时读取的系统时钟⽐使⽤OB1_DATE_TIME这个变量时精
度⾼⼀些。
具体步骤如下:
1、创建⼀个DB数据块如:DB1
2、打开DB1在其中定义⼀个DATE_AND_TIME的变量(注意初始值需要⼿动输⼊:DT#90-1-1-0:0:0.000表⽰1990年1⽉1⽇0
时0分0秒)
3、打开Symbol(符号表)定义DB1的符号名为DB_time(当然也可以是其他名字,此处只是为了⽅便识别其是⽤于读取系统时
间的),这⼀步不可少,少了以后将⽆法进⾏变量链接:即⽆法调⽤这个变量,虽然定义了但它没有名字啊。
如下图中的DB_TIME是符号名字,地址是DB1,数据类型是DB1。
4、在程序中进⾏程序控制
在FC或者OB块中直接调⽤SFC1,通过SFC1(在PLC标准库中的“system function block”可以找到SFC1)就可以将PLC的系
统时钟读取出来,存放在0和4⾥⾯。0存放“年-⽉-⽇-时”
4存放“分-秒-毫秒-周”
0存放年⽉、2存放⽇时、4存放分秒、6存放毫秒和周。
下图为具体当前时间显⽰:“2014年12⽉10⽇16时08分51秒671毫秒星期三”。
三、系统时钟的应⽤
系统时钟读取出来以后就可以进⾏各种控制功能了,⽐如识别某年某⽉某时等等。
1、下图是读取系统时钟进⾏⽐较,当读取的⽉份为12⽉、1⽉和2⽉时设定为浓冬季节,此时当离合器⽔温达到48度时离合器
冷却⽔阀才启动进⾏降温。
2、下图表⽰当读取的时间为6、7、8、9这4个⽉时表⽰为夏季,当离合器油温达到35度时就启动离合器冷却⽔阀进⾏降温。
切记:所有块必须在OB1中进⾏调⽤后才可以正常运⾏,否则⽆法读取相应参数。
⽐如:《PLC读取系统时钟的应⽤》这个程序中的FC2,虽然我们只需要使⽤它的输出MW162,但如果不将FC2整块在OB1中
进⾏调⽤⽽直接在OB1中调⽤MW162则⽆法正常读取系统时间。


发布评论