gkket 发表于 2022-10-23 18:53:29

定时器的时间值在wincc中赋值

因为在wincc的输入输出域中是可以显示日期/时间格式的,但是你又问的是输入域,所以下边的这个图片的情况,应该不是你想要的:https://www.dgzj.com/uploads/allimg/191008/1_191008202212_1.jpg
这个图片就是一个wincc的I/O域,数据格式选择日期/时间,输出格式选择time时候,编辑页面上就显示一个时钟时间值,这通常不是我们需要的!
而定时器的定时时间设置,却是在实际项目中需要经常使用到的!先看一个动态图吧:
https://www.dgzj.com/uploads/allimg/191008/1_191008202137_1.gif
这个动态图上可以看到我在画面上输入值的时候,程序内部的时间值PT处的值是乘以1000的,画面上时间单位是秒(s),程序中的值乘以1000是因为#open_dely这个定时器其实是SFB4 ton定时器,其时基单位是毫秒(ms),所以我想让定时以s为单位运行的话,就要乘以1000!
这里的1000倍的关系是可以通过wincc中的线性标定去实现的!
来看一下wincc中最终正确的设置是怎样的?
https://www.dgzj.com/uploads/allimg/191008/1_191008202100_1.jpg
这个图片就是动态图上最终的设置,输入输出域的数据格式是十进制数,输出格式没有小数点。且这个变量的数据类型是32位的DW数值!当然你选择32位的浮点数也没有问题!
总之呢,在wincc上输入时间值,需要参考程序中定时器的时基,同样是上边动态图中的程序,如果在程序中给open_time_sp用move指令赋值的话,用T#1S和S5T#1S赋值,得到的数值是不一样的。这里只是点一下,和本次答案的实现方法没有多的关系!

yoyo 发表于 2025-11-12 17:24:37

水个经验,支持楼主,加油呀

charlie 发表于 2025-11-12 17:40:23

同款经历!简直是世另我

mqikun 发表于 2025-11-12 18:03:32

原来还有这种操作,长见识了!

技术小丁 发表于 2025-11-12 18:16:27

这波反向操作,我属实没想到!

书明 发表于 2025-11-12 22:51:55

说得对!狠狠赞同,没毛病~
页: [1]
查看完整版本: 定时器的时间值在wincc中赋值