
昨天接到一个客户电话,说是梯形图里有一个线圈,前面的各种开关都已经通了,但是线圈就是没有输出,实在是找不到什么原因了。跟他沟通了一下,结果发现是由于梯形图里面的跳转指令将线圈跳过了,所以才导致线圈没有......
昨天接到一个客户电话,说是梯形图里有一个线圈,前面的各种开关都已经通了,但是线圈就是没有输出,实在是找不到什么原因了。跟他沟通了一下,结果发现是由于梯形图里面的跳转指令将线圈跳过了,所以才导致线圈没有输出的。借着这个事,今天就总结一下梯形图线圈不输出的几个原因。

线圈不输出
1、PMC处于停止状态:PMC如果没有运行,即便是线圈前的各开关都已接通,线圈也仍然不会输出。我们在PMC画面的左上角,很清楚的可以看到PMC目前的状态。

PMC停止状态

PMC运行状态
2、线圈所在子程序没有被调用:如果线圈是处于子程序当中,而当前所在子程序并没有在主程序Level1和Leverl2进行调用,即便是线圈前的各开关都已接通,线圈也仍然不会输出。如下图,子程序P0001调用指令未接通,所以子程序P0001未被调用执行,因此在子程序P0001中的线圈也没有接通。

线圈所在子程序未被调用,线圈无输出
3、线圈所在程序段被跳转:如果PMC中含有跳转指令,而线圈所在行正好被跳过,即便是线圈前的各开关都已接通,线圈也仍然不会输出。如下图,所在行被跳转,因此线圈无输出。

4、线圈存在双线圈:如果同一地址在PMC中有两个或者多个输出线圈,那么线圈是否输出则取决于最后执行线圈的状态,如下图所示,由于线圈的位置不同,导致输出结果不同。

双线圈导致无输出

双线圈位置影响输出结果
5、线圈地址被赋值:如果线圈地址已经被赋值了,那么类似于双线圈问题,那么线圈是否输出则取决于最后执行线圈的状态,如下图所示,由于Y11赋值与线圈的位置不同,导致输出结果不同。

赋值影响线圈输出

线圈与赋值相对位置影响输出结果
以上便是影响线圈输出的常见问题,总结一下,一共5条:1是PMC处于停止状态、2是线圈所在子程序被调用、3是线圈所在行被跳过、4是存在双线圈、5是现在所在字节、字、双字被赋值。
PS:本节列举的是常见问题,COM指令和CS事件调用也会有影响,但很少能遇到,本节就不做介绍了。