A. 罗克韦尔-AB使用RSLogix5000读取系统时间实操案例分享
话不多说直接上干货!
第一步:控制器标签中建立全局变量,用于存储读出来的系统时间,变量名为DATE,数据类型为DINT的一维数组,数据个数6个就够用。
第二步:ALT+INS在主例程Mainroutine中插入指令GSV,此指令就是读取系统时间的指令。
第三步:配置GSV指令参数
类名:WallClockTime
属性名称:DateTime
目标:指向数组的第一个变量
第四步:打开仿真或者连上控制器,设置掘余CPU时间
设置时间的界面在CPU属性中的日期/时间中,设置时需要注意的一点是CPU显示的时间一直为格林尼治时间,也就是没有时差的时间,培散游想要设置成北京时间有下面两种方法:
1:时区设置成格林尼治时区,也就是时差设置成+0.00,同时时间设置成北京时间,此时CPU显示的时间即为北京的时间;
2:时区设置成北配销京时区,也就是时差+8.00,此时的时间需要在北京时间基础上增加8个小时,因为时区设置成了+8.00,系统会自动在你设置的时间基础上减去8个小时;
笔者推荐使用第一种方法!
B. 如何呈现gps定位模块获得定位信息
gps定位模块定位之后会输出定位语句信息,GPS定位信息串行输出格式大多采用美国国家海洋电子协会制定的NMEA-0183 通信标准格式。其输出数据采用的是ASCII码,内容包含了纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息,常用语句有6 种,包括GGA、GLL、GSA、GSV、RMC 和 VTG。
GPS模块发送到单片机的数据主要由帧头,帧尾和帧内数据组成,因此,必须明确其帧结构,然后才能根据其结构完成明羡销对各个定位信息的提取。
如:$aaccc,ddd,ddd,…,ddd*hh<CR><LF>
1、“$”——帧命令起始位
2、aaccc——地址域,前两位为识别符,后三位为语句名
3、ddd…ddd——数据
4、“*”——校验和前缀
5、hh——校验和(check sum),$与*之间所有字符ASCII码激游的校验和(各字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符。)
6、<CR><LF>——CR(Carriage Return) + LF(Line Feed)帧结束,回车和换行
NMEA-0183的数据信息有十几种,这些信息的作派信用分别是:$GPGGA:输出GPS的定位信息;$GPGSA:输出卫星DOP值信息;$GPGSV:输出可见的卫星信息;$GPRMC:输出最小数据量的GPS信息;$GPVTG:地面速度信息;$GPGLL:输出大地坐标信息;$GPZDA:输出UTC时间信息;$GPGST:输出定位标准差信息;$GPALM:输出卫星星历信息;