Monday, July 11, 2016

嵌入式(PLC)的时区问题

http://www.mitbbs.com/article_t/Programming/31481091.html

发信人: bihai (学得不好), 信区: Programming
标  题: 嵌入式(PLC)的时区问题
发信站: BBS 未名空间站 (Mon Jul 11 17:28:37 2016, 美东)

我们给客户开发一个嵌入式硬件PLC,这个硬件里面有微处理器,可以用一个我们开发
的软件通过TCP/IP来配置,然后客户自己用Modbus来配置和读取信息。客户发现一个问
题,他们通过Modbus直接配置时间后,通过我们的软件读取,时间不一致。通过我们软
件设置后,Modbus里面显示的小时不对。

配置嵌入式的时间有两种,一种是软件启动后,自动先把嵌入式的这个UTC时间读入,
显示成本地时间。当在软件界面点击Sync,现在软件就把系统的时间(UTC)传给嵌入式。

第二种是用户提出的,在Modbus寄存器里面增加两组,一组来显示年/月/日/时/分/秒
,一种来设置年/月/日/时/分/秒,然后用一个寄存器作为出发,把设置的时间写入嵌
入式系统。这里,用户会把当地时间输入。

经过我分析发现,这个嵌入式系统没有考虑时区。软件通过Windows读时间后,向硬件
发送的是UTC的时间。客户在Modbus看到的也是UTC的时间转换成年/月/日/时/分/秒(
每个一个Modbus寄存器),和当地时间有差别。但是,用户需要的显示当地时间。

我们内部讨论,我的观点是,嵌入式需要加入时区,和夏令时因素,PC软件和嵌入式通
过传送UTC时间是正确的。有人认为,问题在PC软件,要软件做修改。大家怎么看?

No comments:

Post a Comment