用常规写法替代EN/ENO 编写的程序

已锁定

1Shadow1

  • 帖子

    155
  • 精华

    6
  • 被关注

    75

论坛等级:侠士

注册时间:2013-12-11

钻石 钻石 如何晋级?

用常规写法替代EN/ENO 编写的程序

1024

9

2024-06-11 15:41:01

最近拿到一份有很多EN/ENO 指令的程序,打算改成常规的写法(对不熟悉的人来说不是很友好),同时保持相同的读写特性;方法有了(所有output改为InOut),趁着有时间,拓展一些细节,做一些实验;


下面图片中的FB 可以不填参数,FC 不填会报错;;

1.


2.内部先做成一样的;


3.特性1,失去EN 后结果保持不变;

4.特性2,失去EN 后,控制输入失效,不对结果造成影响;


总结: 失去EN 后,相当于这段程序删除了;

针对大家的疑问,补充下面几点:

补充1:其他类型在FB/FC 编辑阶段会不会报错?


结论FC 对于其他数据类型,空白都会报错;FB 对variant 和 定长/不定长数组不填参数会报错;

补充2..失去EN 会对结果锁定。

此描述是错误的,锁定意味着不能修改,其实是可以修改的;其实就是相当于这段代码不存在了,所有输出保持失去EN 前的状态,直到被后面的程序修改,理解上,失去EN 后说是删除没有问题。可以看到作为输出的Tag_3 在监视表里面被修改了。


补充3: 如果没有语句对输出进行操作,相当于对输出持续写0,除非后面有语句持续写1,才能改变;


不同的是,FB 因为有数据块,即使前面的输入条件没了,后面的output 数据也会保持,并且接口上的变量同样不可修改,除非直接去修改DB; 相当于数据先写到DB, 再从DB 写到接口;而FC 因为没有DB,就会和前面没有写,默认当作写0;


到这可能回想,此处的IF 和前面的EN 功能是不是一样? 对FB 来说,并不完全一样;从结果上来说,失去了EN ,output  接口上的变量可以被修改;但是IF 不满足的情况,output 接口的变量不能被外部直接修改,除非一直写;





用常规写法替代EN/ENO 编写的程序 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10715条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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