回复:我不用iec指令及其他

hhyx9

  • 帖子

    1113
  • 精华

    22
  • 被关注

    45

论坛等级:奇侠

注册时间:2015-04-11

钻石 钻石 如何晋级?

发布于 2026-01-20 14:23:05

4楼

展开查看
以下是引用Mr.huxb在2026-01-19 12:05:21的发言 >0楼

我没有翻阅各PLC指令表的习惯,当然这不是一个好习惯!

在博途中不使用iec指令的原因在于每次均要添加一个背景数据块,一个任务下来,添加了一大堆背景数据块,我嫌烦。

比如边沿识别和计数,我通常就如下做:

REGION 三,局部时钟脉冲

    //--1--SecPules发生器

    #b.SecPulse := "Clock_1Hz" AND NOT #b.SecPulsePre;

    #b.SecPulsePre := "Clock_1Hz";

    //--2--minPulse发生器

    IF #b.SecPulse THEN

        #i.MinuteTimer += 1;

        // 达到60秒,生成分钟上升沿

        IF #i.MinuteTimer >= 60 THEN

            #b.MinPulse := TRUE;

            #i.MinuteTimer := 0; // 重置秒计时器

        ELSE

            #b.MinPulse := FALSE;

        END_IF;

    END_IF;

END_REGION

但是最近我在做一个多种药剂的投加调节程序,一是前馈数据列表有点大,二是要做前馈数据的自动优化(相同工况时输出效果好则替换,不同工况时输出效果好则插补新增)。

最后程序量很大,且是多层调用,我就想呀:

1,这个秒脉冲会不会丢失掉?

2,如果确保计时精度?比如执行扫描到某个子程序时,PLC内部计时已经到了999毫秒或者刚好1000ms,不管多少吧,总之,时间上是存在偏差的,且偏差值不固定,本意是满一分钟才执行一次的程序,但实际执行周期是不足一分钟。

我不知道这样说是否准确,列位是否能理解我的表达。


另,问一下,论坛限制了上传图片的像素吗?只能200*200吗?

IEC都是用多重背景,你既可以向2楼说的创建一个专门的全局DB去做实例,也可以在每个FB的Static内生成实例,比较推荐后者

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11102条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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