【S7-200 Smart开源标准化编程】时间间隔定时器BGN_ITIME、CAL_ITIME的正确使用方法

已锁定

不欲勿施

  • 帖子

    835
  • 精华

    16
  • 被关注

    385

论坛等级:奇侠

注册时间:2009-03-27

钻石 钻石 如何晋级?

【S7-200 Smart开源标准化编程】时间间隔定时器BGN_ITIME、CAL_ITIME的正确使用方法

9120

32

2022-12-30 13:01:49

闲言少叙,先看官方例子:

优化定时器

给出的图例是这样的:

我们可以看到图中给定的是3000毫秒的定时,如果定时的时间小于并且接近2147483647毫秒问题不大。假如我设定定时时间为2147483647毫秒大概率就会出现问题,比如此次扫描周期VD4的结果是2147483646,扫描周期为2毫秒,下次VD4里的值是2147483648,这时VD4里的值表现为负值,不可能大于2147483647这个设定值。这是由于西门子官方没有推出无符号双整数比较指令造成的。如果需要输入一个大于2147483647的常数设定值,就需要输入一个负值,这很不人性化。

所以这就需要一个解决方案,这里要感谢一下@tingal_cai  发的帖子。

无符号数据类型的转换、比较及运算解决方案

【S7-200 Smart开源标准化编程】里的可重复调用的定时器原本使用的是官方的方法,现在都进行了修改。


这样修改后的定时器的设定值可以是2147483647,在定时器的时间设定脚上输入大于2147483647数值也是没问题的,也不用输入负值,这样就人性化了。

标准化程序的此方法的修改没完全完成,所以暂时不放出了。感兴趣的坛友可以在之前的程序上自行修改。

---------------------------------------------------------------------------------------------------------------------------------

如果需要输入一个大于2147483647的常数设定值,就需要输入一个负值,这很不人性化。

我前面说的这句话是错误的,大于2147483647的常数做为设定值是没问题的,不需要输入负值。

但有符号双整数比较指令这里还是有问题的。

【S7-200 Smart开源标准化编程】时间间隔定时器BGN_ITIME、CAL_ITIME的正确使用方法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。