quote:以下是引用XUE_123在2012-05-20 15:25:20的发言:
如果想通过上位或触摸屏对PLC 中S5TIME 类型的参数进行设定,有如下方法:
1、从上位机写整型数INT 或实数REAL 到PLC ,首先该数值需包含以毫秒为单位的时间值,在写入PLC 的数据存储区后,利用ITD (Integer to Double Integer )或RND(Real to Do uble Integer with Roundin g Off )将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME 转换成S5TIM E 即可。 此方法仅用于STL语言。
2、从上位机写WORD到PLC ,首先该数值需包含以某时基为单位的时间值,在写入PLC 的数据存储区后,用Word Logic 下的WOR_W 指令将该值与其时基相或,再利用MOVE 指令将得到的数值写入S5TIME类型的变量中。此方法通用于LAD和STL语言。
3、如果使用WinCC作为上位软件,或上位软件支持32位带符号浮点数,可以从上位写32位带符号浮点数到PLC 中定义为TIME 的变量,然后在程序中调用FC40,将TIME转换成S5TIME即可。
4、上位机数据采用INT下发之后,PLC先经过BCD转换后采用第2种方法,先与上时基后MOV到相应变量就可以实现时间转换
2、4是矛盾的。
2应该是以BCD格式而不是Word写到PLC。
如果上位机是WinCC,那么可以直接使用WinCC的类型转换