登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:给PLC新手出道题,高手勿喷~

点击:1491 回复:12

今天,有个朋友说主程序都可以写到子程序里,我“抬扛”贴出下图,然后他愣了。
程序1:
附件 1.jpg
程序2:
附件 1.1.jpg
朋友说对于同一个线圈,这么编程不规范!我说比如工艺需要多种模式,操作同一个线圈,写到子程序里更直观。假如写到一个网络,太复杂。
问题1:知道这两个程序输出为什么不同么?
程序3:
附件 2.jpg
程序4:
附件 2.0.jpg
问题2:程序3和程序4输出为什么相同呢?
14-03-28 19:56
程序1和程序2为双线圈,输出结果为扫描最后一条指令,一般不这么编,会出现逻辑混乱。
程序3和程序4 逻辑上是一样的,结果就是一样的。
14-03-29 07:11
问题1,M0.0如果通,M0.1不通,你想要M0.0通还是不通呢
问题2,实际上程序3和程序4就是一样的的,只是扫描时间上估计差那么一点点
14-03-29 08:59

引用 step1 在 2014/3/29 7:11:20 发言【内容省略】

“主程序都可以写到子程序”,我只是为了反驳这种说法。
14-03-29 10:52
呵呵,有点意思,考逻辑
14-03-29 16:22
你朋友说的没错。主程序能实现的,子程序都能实现。
14-03-30 10:28
初学,很想有高手解释一下为什么有时候把主程序写到子程序里面,然后运行结果就不对了
14-03-31 14:47

引用 Kate 在 2014/3/30 10:28:12 发言【内容省略】

是的。但是有些细节得考虑。比如对于位逻辑,写到子程序后,子程序EN使能为0,该子程序不会被扫描。而在主程序,是会被扫描的。
14-03-31 17:10

引用 BobMarley 在 2014/3/31 17:10:49 发言【内容省略】

一般情况下我写子程序有一部分原因是为了使主程序看起来简洁、明了,并且某些功能使用子程序模块化方便调用,有一些冗长的程序段就用一个SM0.0放到子程序,甚至有可能位逻辑判断都放到子程序。
14-03-31 22:24

引用 BobMarley 在 2014/3/31 17:10:49 发言【内容省略】

问题就归结为如何使用子程序了。
最简洁的主程序,看不到任何的中间运算及输出,全部根据不同条件调用一系列子程序。
14-04-01 09:37

上一页下一页

工控新闻

更多新闻资讯