FB4 异步子程序报警 14014 14011

现在想做一个异步子程序,发生了一些问,请高手们指教一下。当PI属性为PI,SELECT时,触发这个功能时报警14014通道1选择的程序不能处理或编辑,当PI属性为PI.ASUP时报警14011通道1 程序段1编程不存在或没有编辑,这个错误在JOG,MDI,AUTO方式下都报错,但是在AUTO方式下循环启动别的程序时无论是PI的属性是什么的时候都不报警,但是也没有动作,下面是我的程序,我看路径和程序都没有问题,帮忙看看是不是哪里我做的还是不对呢?        
  
       CALL  "PI_SERV" , DB108
        Req      :=I6.3
        PIService:="PI".ASUP       //或"PI".SELECT我都试过了
        Unit     :=1
        Addr1    :="fast".path1      //  " fast " 是定义的字符,数据块是DB119
        Addr2    :="fast".name1  
        Addr3    :=
        Addr4    :=
        WVar1    :=W#16#1
        WVar2    :=W#16#1
        WVar3    :=
        WVar4    :=
        WVar5    :=
        WVar6    :=
        WVar7    :=
        WVar8    :=
        WVar9    :=
        WVar10   :=
        Error    :=M200.0
        Done     :=M200.1
        State    :=MW200
 
 下边是DB119里面的
    名称          类型          初始值
    path1            STRING[32]         '/_N_SPF_DIR'  
       name1         STRING[32]         '/_N_KKTT_SPF/'
  这个程序哪里有问题吗?我实在看不出来了,都帮忙分析一下吧!

问题补充:
我按照大家给的建议试了一下,ob100的FB1的参数NCKOMM以前就是TRUE,输入PI参数时我都是小写的,系统自己加引号并改变大小写,addr1和addr2后面加上PATH和NAME后会报错的,所以还是我以前的格式,name1         STRING[32]         ''''/_N_KKTT_SPF/''''
这一句是以前马虎了,吧sPF后的/已经去掉,要触发的程序肯定在我指定的目录里,我在DOS平台下看了,DOS平台下看是F;/DH/SPF.DIR/KKTT.SPF,是不是要在路径
path1            STRING[32]         ''/_N_SPF_DIR'' 这里的SPF前加上DH呢?MW200里边的数字最后两位是11,大家再看看还有什么办法吗?

最佳答案

楼主的执行ASUP的问题的确具有代表性,需要仔细分析,尤其要注意各个参数的正确设置,我认为有以下几点值得注意:
1.首先为了系统能够通过plc与NC之间进行通讯服务,要把ob100的FB1的参数NCKOMM项的设置为“TRUE”,表示激活此项功能,你可以重点检查一下,
2.程序第三行的 PIService :="PI".ASUP       //或"PI".SELECT   
我认为不用管是否PI是大小写,而且PI的引号也是不用管的,S7系统会自动加上的,你查一下,是否人为的多加了引号了,那自然就定义有误了,
 3. 程序第五、六行的   Addr1    :="fast".path1                                                                 Addr2    :="fast".name1  //  " fast " 是定义的字符,数据块是DB119
我认为你可以这样修改一下:
Addr1    :="fast".path1_PATH                                                                 Addr2    :="fast".name1_NAME // 
 楼主注意," fast " 是定义的数据块DB119的符号表示,而不是字符,
4.程序中的DB119里面的
    名称          类型          初始值
    ------  
       name1         STRING[32]         ''''''''/_N_KKTT_SPF/''''''''
该项是对所调用的程序名,初始值''''''''/_N_KKTT_SPF/''''''''
却是一个目录路径,是错误的,应该改为''''''''name1'''''''' ,
5.另外,楼主触发这个功能时报警14014,14011,说明,你指定的程序name1,可能不在你指定的目录''''''''/_N_SPF_DIR'''''''' 下,建议新建一个程序 name1,再试机,
6.在FB4的错误、执行、事件描述中,
     Error    :=M200.0
        Done     :=M200.1
        State    :=MW200
建议更改
     State    :=MW210,否则造成数据溢出,系统无法编译正确。


对楼主补充的回应:
建议楼主更改
     State    :=MW210,并查看一下具体值,有助于故障的状态查询,
并将path1            STRING[32]         ''/_N_SPF_DIR''  改为   path1            STRING[32]         ''/_N_MPF_DIR''  
即改为主程序目录,注意在调用程序时应该注意文件后缀,即NAME1(文件名).mpf,
以上说明可以助力楼主解决PI服务的问题,祝楼主好运!

提问者对于答案的评价:
谢谢,就是我参数没设对

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc210884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月12日 下午8:01
下一篇 2017年11月12日 下午8:02

相关推荐