沙漠仙人掌
级别: 探索解密
精华主题: 0
发帖数量: 69 个
工控威望: 110 点
下载积分: 2089 分
在线时间: 57(小时)
注册时间: 2022-05-05
最后登录: 2024-11-14
查看沙漠仙人掌的 主题 / 回贴
楼主  发表于: 2024-06-06 10:36
请问在三菱PLC程序里,主程序和子程序可以输出同一个线圈吗?也就是双线圈的问题是否可以?
菜鸟入行
级别: 论坛先锋

精华主题: 0
发帖数量: 1379 个
工控威望: 1557 点
下载积分: 3686 分
在线时间: 177(小时)
注册时间: 2017-09-01
最后登录: 2024-06-11
查看菜鸟入行的 主题 / 回贴
1楼  发表于: 2024-06-06 10:49
应该不行吧。可以主程序输出一个M100,子程序输出一个M200, 然后M100和M200共同输出Y0
打个酱油,懂的不多
水平有限,能帮则帮
互相帮助,共同进步
我是新来的
这里需要写点儿东西
级别: 论坛先锋
精华主题: 0
发帖数量: 307 个
工控威望: 1827 点
下载积分: 35823 分
在线时间: 361(小时)
注册时间: 2019-11-21
最后登录: 2024-12-27
查看我是新来的的 主题 / 回贴
2楼  发表于: 2024-06-06 11:55
两个子程序不同时调用的可以,主程序和子程序不行,亲身经历
ayusecret
级别: 略有小成
精华主题: 0
发帖数量: 185 个
工控威望: 263 点
下载积分: 810 分
在线时间: 74(小时)
注册时间: 2021-10-31
最后登录: 2024-12-19
查看ayusecret的 主题 / 回贴
3楼  发表于: 2024-06-06 13:18
图片:
看你的用法
1、如果一个元件定义成可以在多处地方临时调用,你100个双线圈都没问题,前提是你在使用的时候需要正确的初始化它,我经常定义一些临时变量拿来重复计算用,用之前初始化即可
2、如果一个元件定义成全局控制唯一(流程唯一或数据唯一),那得尽量避免双线圈.
理解一点,程序是按扫描执行的,你的输出取决于最后一次如何处理,你在输出的扫描之前能正确处理即可,之所以要避免双线圈,是担心你在实际编写程序时,双线圈的时序会乱放,导致逻辑不明确,扫描的时序不对导致输出不对

所以上图的执行结果,Y0的输出只取决于X0的输入,和上面的其他逻辑无关
沙漠仙人掌
级别: 探索解密
精华主题: 0
发帖数量: 69 个
工控威望: 110 点
下载积分: 2089 分
在线时间: 57(小时)
注册时间: 2022-05-05
最后登录: 2024-11-14
查看沙漠仙人掌的 主题 / 回贴
4楼  发表于: 2024-06-06 15:33
谢谢楼上各位网友的解答,现在搞明白了,多谢!
electric
级别: 略有小成
精华主题: 0
发帖数量: 159 个
工控威望: 249 点
下载积分: 1420 分
在线时间: 44(小时)
注册时间: 2024-05-23
最后登录: 2024-11-07
查看electric的 主题 / 回贴
5楼  发表于: 2024-06-11 10:22
可以用中继来过度,置位复位中继就不会有双线圈的问题了
八非特
级别: 略有小成
精华主题: 0
发帖数量: 144 个
工控威望: 295 点
下载积分: 1838 分
在线时间: 56(小时)
注册时间: 2024-04-24
最后登录: 2024-12-27
查看八非特的 主题 / 回贴
6楼  发表于: 2024-06-11 10:48
最好不要双线圈,问题多多
wingwf2000
级别: 探索解密
精华主题: 0
发帖数量: 53 个
工控威望: 159 点
下载积分: 669 分
在线时间: 14(小时)
注册时间: 2010-09-26
最后登录: 2024-12-08
查看wingwf2000的 主题 / 回贴
7楼  发表于: 2024-06-11 11:31
这个是可以的,关键是是否符合你的逻辑,只要你心里清楚实际的结果就行!