定时器使用的数据类型为Time类型,并且默认是毫秒(ms)单位,如果我们定义一个Time类型的M变量,用它来进行中间传递参数,将WinCC的写入的值传到定时器上,这是最容易想到的办法。但是在WinCC中如果要设置10秒,输入的数值就得是10000,因为是ms单位,加重了人脑操作复杂度。
有没有更简单的方法?肯定是有的,具体如下:
1、定义一个DINT的数据类型和一个Time数据类型;
2、WinCC中连接这个DINT的数据类型,以单位秒(S)为输入值,然后使用DINT乘法,乘以1000,转换为以毫秒(ms)为单位的数值;
3、如果是梯形图编程,使用MOVE块,如果是CFC编程,使用BLKMOVE块,将DINT数据存储到Time类型的存储器中;
4、将Time类型的存储器中的值赋予定时器就可以了。
注意:定义的DINT和Time类型的数据最好通过DB实现,它能保持数据不丢失,详见《PCS7中使用WinCC读写DB中的数据》。