西门子200PLC中调用三个子程序,子程序中用不同条件进行输出线圈,为什么有的子程序条件符合不进行输出呢 西门子200PLC子程序调用返回问题
作者&投稿:缑伊 (若有异议请与网页底部的电邮联系)
使用西门子200PLC调用子程序为什么程序里面有线圈输出,而PLC为什么不动作~
你数据冲突了 ,不要直接输出线圈 ,输出个虚点在输出线圈;PLC输出指示灯只是代表Q点当前状态,意思是你如果2个子程序分别给出不同输出线圈,当前状态就会是任意一种;你如果先输出到个虚点,在输出线圈,它就会统合结果,才输出线圈
首先,根据上述你所说:三个子程序调用时应该独立, 不能同时调用其中2个或三个。
线圈输出你要是用置位命令,调用其他程序时应该同时将所有输出线圈复位
加个状态位就可以了
例如 。子程序1调用 MB0 =0
子程序2调用 MB0 =1
子程序1调用 MB0 =2
西门子200中,如果在程序中有两个相同的输出点,那么程序能通过编译,但是实际是不输出的。
应该是程序编写的问题,建议你检查一下几个方面:
1、线圈前段使能条件是否能满足,如果不能满足,那就不会有输出;
2、线圈是否重复使用,输出线圈编号如果在程序其他部分也被使用,那么二者之间有可能冲突导致输出不正常;
3、线圈在子程序里使用,主程序里是否有子程序调用指令,如果有,调用指令使能条件是否满足。
1.EN端为触发调用子程序,如使用sm0.0.子程序一直被调用,如使用上升沿,子程序被调用一次。正确的理解是,当程序扫描到这里,如果EN端逻辑处理ROL为真,则调用子程序。
2.当子程序没有被调用时,里面的输入I和输出Q,M等保持,计时器正常计时,计数器赞不清楚,你可以仿真或实际运行测试一下。总的来说,有些是保持有些是继续的。
3.一般我们处理子程序中途停止后,在下面的网络段里都会做R复位处理。比如子程序里有输出Q,那在子程序下面,会增加一段处理对Q复位的指令,就是为了防止子程序停止了却输出保持的状况。
你用了双线圈输出吧,好好检查下看看,双线圈输出以最后一个线圈的状态为准,比如下面这种,即使M0.0为1了,Q0.0也还是为0,因为以最后一个线圈的值为准
你数据冲突了 ,不要直接输出线圈 ,输出个虚点在输出线圈;PLC输出指示灯只是代表Q点当前状态,意思是你如果2个子程序分别给出不同输出线圈,当前状态就会是任意一种;你如果先输出到个虚点,在输出线圈,它就会统合结果,才输出线圈
首先,根据上述你所说:三个子程序调用时应该独立, 不能同时调用其中2个或三个。
线圈输出你要是用置位命令,调用其他程序时应该同时将所有输出线圈复位
加个状态位就可以了
例如 。子程序1调用 MB0 =0
子程序2调用 MB0 =1
子程序1调用 MB0 =2
西门子200中,如果在程序中有两个相同的输出点,那么程序能通过编译,但是实际是不输出的。
《请教西门子S7—200,子程序调用的问题》
答:p这个指令后调用子程序,表示P前面的均通(能流可通过)时,子程序在接通的上升沿可以被执行一次...总的来说就是上上升沿执行一次...