首页 理论教育 扩展指令常见问题汇总

扩展指令常见问题汇总

时间:2023-07-01 理论教育 版权反馈
【摘要】:具体CPU时区及夏令时设置参见第3.2.13章节。参考图3-20,S7-1200 CPU设置CPU时区为东八区北京时间,没有夏令时。表5-26 VAL_STRG字符串转换实例图5-15 VAL_STRG中P、SIZE和输出字符的关系此外,S_CONV可以实现浮点数转换为特定格式的字符串,对于其LAD和SCL这两种形式有着不同的系统行为,具体见表5-27。表5-27 S_CONV字符串转换实例(续)4.如何将ASCII码组成的字符串转换为十六进制数?

扩展指令常见问题汇总

1.S7-1200 CPU系统时间和本地时间的区别?

答:区别如下:

系统时间:S7-1200 CPU的系统时间为UTC时间。

本地时间:本地所在时区和夏令时作为时差,该时差与系统时间之和计算出来的时间为本地时间;对于中国,时区为东八区(无夏令时),所以中国的时间是UTC+8。具体CPU时区及夏令时设置参见第3.2.13章节。

WR_SYS_T和RD_SYS_T为设置和读取系统时间。

WR_LOC_T和RD_LOC_T为设置和读取本地时间。

参考图3-20,S7-1200 CPU设置CPU时区为东八区北京时间,没有夏令时。

如图5-10所示,RD_SYS_T读出系统时间为2017-6-22-08:41:13,RD_LOC_T读出本地时间为2017-6-22-16:41:13,相差8小时。

2.如何在上位机/触摸屏上设置S7-1200 CPU的时间?

答:步骤如下:

1)在S7-1200CPU的DB块中建立DTL数据类型,如图5-11所示。

978-7-111-58391-2-Chapter05-44.jpg

图5-10 模块时间与读系统/本地时间

2)在上位机/触摸屏按照表4-2所示的数据类型和范围,根据需要设置年、月、日、时、分、秒(24小时制,无需设置星期),上位机的变量表设置如图5-12所示。

3)编制上位机界面,如图5-13所示。

4)PLC程序使用WR_LOC_T指令,如图5-14所示。

978-7-111-58391-2-Chapter05-45.jpg

图5-11 PLC中DB块设置,监视值为触发时间更新后的值

978-7-111-58391-2-Chapter05-46.jpg

图5-12 上位机变量表设置

978-7-111-58391-2-Chapter05-47.jpg

图5-13 上位机界面的时间设置(www.xing528.com)

978-7-111-58391-2-Chapter05-48.jpg

图5-14 修改本地时间的程序

3.如何将浮点数转换为小数表示法的字符串?

答:使用VAL_STRG可以实现浮点数转换为小数表示法的字符串,见表5-26。

5-26 VAL_STRG字符串转换实例

978-7-111-58391-2-Chapter05-49.jpg

978-7-111-58391-2-Chapter05-50.jpg

图5-15 VAL_STRG中P、SIZE和输出字符的关系

此外,S_CONV可以实现浮点数转换为特定格式的字符串,对于其LAD和SCL这两种形式有着不同的系统行为,具体见表5-27。

5-27 S_CONV字符串转换实例

978-7-111-58391-2-Chapter05-51.jpg

(续)

978-7-111-58391-2-Chapter05-52.jpg

4.如何将ASCII码组成的字符串转换为十六进制数?

答:ATH指令可以完成该转换,但需注意的是转换前的字符个数是转换后的字节个数的2倍。

如图5-16所示,输入‘1A2b’,输出为16#1A2B,输入为4个字符的字符串,而输出占据2个字节。

978-7-111-58391-2-Chapter05-53.jpg

图5-16 ASCII转换为十六进制数程序示例

注意:

如果N为奇数,则在输出16进制中补零。例如上图当N=3时,输出为16#1A20。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈