utc时间转换(utc在线时间换算器转秒)

我有个惊喜!!!一般来说,有两种方法可以获得准确的时间。第一种方式是从NTP服务器获取,第二种方式是通过卫星获取UTC时间。对于不能联网的设备,如果想通过NTP

我有个惊喜!!!

一般来说,有两种方法可以获得准确的时间。第一种方式是从NTP服务器获取,第二种方式是通过卫星获取UTC时间。对于不能联网的设备,如果想通过NTP协议获取时间,只能使用支持UDP传输的外部网络模块,比如串口服务器。如果设备支持卫星定位,可以通过获取卫星的UTC时间来获得准确时间。对于需要使用北京时间的设备,需要进行换算。

即UTC协调世界时,又称世界时、世界标准时、国际协调时。北京位于东八区时区,比UTC时间快8小时。

边肖将通过Modbus卫星定位模块获取UTC时间,通过MCGS脚本转换东八区时间,然后通过Modbus协议修改PLC的RTC时钟。

卫星定位模块采用EBYTE E108-D01,支持多模定位和UTC时间查询的Modbus RTU从机。下表显示了E108-D01注册表截取的这种情况下使用的寄存器。直接存储在寄存器中的UTC时间需要+8小时才能转换成北京时间。

utc时间转换(utc在线时间换算器转秒)插图

时间运算做不到的时候,简单加8个小时,考虑大、小、月、闰年,进行时间计算的进位处理,比较复杂。MCGS脚本支持时间戳转换,所以可以将获取的UTC时间转换成时间戳,然后加上8小时(时间戳计算需要秒,8小时等于28800秒),再转换成其他格式的时间数据。使用时间戳计算可以忽略大、小、月、闰年等复杂的时间处理过程。

有些PLC还支持通过时间戳配置RTC时间,有些则需要使用BCD或普通值。

TM221可以通过BCD码配置系统字(%SW49-%SW53)结合系统位(%S50)。从下图可以看出,使用系统字和系统位的配置时间比较复杂。

utc时间转换(utc在线时间换算器转秒)插图(1)

TM221也可以通过PLC组态软件中“功能块”的RTC功能进行修改。在这里,边肖这样修改PLC的RTC时间;

utc时间转换(utc在线时间换算器转秒)插图(2)

MCGS使用最便宜的TPC7062TX。该设备有两个串口,一个RS485(COM2)接口和一个RS232接口。此处不解释引脚定义。如果不知道,可以咨询MCGS官网。

这里使用官方设备,即“所有设备”的“PLC”目录下的“-Modbus RTU”驱动程序,

utc时间转换(utc在线时间换算器转秒)插图(3)

PLC使用施耐德TM221,需要配置以下PLC梯形图。6个保持寄存器用于存储MCGS发送的年、月、日、时、分、秒,中间寄存器用于将参数写入RTC功能块,实现时间校准。

utc时间转换(utc在线时间换算器转秒)插图(4)

utc时间转换(utc在线时间换算器转秒)插图(5)

TM221使用的寄存器格式如下表,便于MCGS配置寄存器。

utc时间转换(utc在线时间换算器转秒)插图(6)

配置MCGS的设备列表和注册查找表,如下图所示:

utc时间转换(utc在线时间换算器转秒)插图(7)

父设备配置,即RS-485总线的波特率参数。这里,使用波特率9600、数据位8、停止位1和无校验;

分别配置GPS的寄存器地址,用地址1,配置TM221的寄存器地址,用地址0;

utc时间转换(utc在线时间换算器转秒)插图(8)

制作一个简单的人机界面,如下图所示:

utc时间转换(utc在线时间换算器转秒)插图(9)

下图是MCGS的时间戳处理功能。这里只举例说明将时间字符串转换为时间戳和通过时间戳获取年份两个功能。其他函数的用法类似。

utc时间转换(utc在线时间换算器转秒)插图(10)

将从GPS获取的UTC时间分别赋给“当前UTC时间”,通过字符串格式化函数将数值格式化为YYYY-MM-DD HH:MM:SS格式的字符串,方便读取数据和直观使用;

!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS年、GPS月、GPS日、GPS小时、GPS分钟、GPS秒)

将当前UTC时间转换为时间戳,并控制功能服务器的UTC时间戳;

!TimeStr2I(!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS _年、GPS _月、GPS _日、GPS _小时、GPS _分钟、GPS _秒))

时间戳增加8小时后,转换为北京时间对应的“年、月、日、时、分”并服务于“北京时间”控件;

!TimeGetYear(!TimeStr2I(!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS _年、GPS _月、GPS _日、GPS _小时、GPS _分钟、GPS _秒))+28800)

!TimeGetMonth(!TimeStr2I(!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS _年、GPS _月、GPS _日、GPS _小时、GPS _分钟、GPS _秒))+28800)

!TimeGetDay(!TimeStr2I(!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS _年、GPS _月、GPS _日、GPS _小时、GPS _分钟、GPS _秒))+28800)

!TimeGetHour(!TimeStr2I(!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS _年、GPS _月、GPS _日、GPS _小时、GPS _分钟、GPS _秒))+28800)

!TimeGetMinute(!TimeStr2I(!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS _年、GPS _月、GPS _日、GPS _小时、GPS _分钟、GPS _秒))+28800)

!TimeGetSecond(!TimeStr2I(!str format(& # 34;% g-% g-% g % g:% g:% g & # 34;、GPS _年、GPS _月、GPS _日、GPS _小时、GPS _分钟、GPS _秒))+28800)

“修改”按钮控件需要在时间校准前判断UTC时间是否有效。具体脚本如下:

utc时间转换(utc在线时间换算器转秒)插图(11)

至此,卫星授时的所有配置已经完成。边肖从E108-D01如何获取时间,PLC梯形图如何打开RTC组态界面,MCGS如何向PLC写入时间做了详细的介绍。按照这种方法,任何支持Modbus RTU协议的设备都可以通过卫星进行校准。

下图是跨月跨年情况下,使用模拟设备自动校准北京时间的过程:

utc时间转换(utc在线时间换算器转秒)插图(12)

utc时间转换(utc在线时间换算器转秒)插图(13)

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/85774.html

发表回复

登录后才能评论