各位老师,我现在有10个PLC,分别对应IP地址为192.168.1.2-11,我在写程序的时候,10个PLC的程序基本差不多,所以我就在一个项目下插入了10个300站点,对每一个站点进行硬件组态,程序块用到OB1,FC10,FC11,FC12,在OB1里调用其他三个,我写好一个站点的程序块之后,然后把OB1,FC10,11,12复制到别的站点里面去,在稍微做下修改,程序基本一样。大部分PLC下载程序工作没有问题,偶尔会遇到这样的情况,比如PLC1为列:下载PLC1的硬件组态的时候SF灯还没有亮,然后我把程序块OB1,F10,11,12下载下去之后SF灯开始亮了,程序也不执行,然后我在线PLC1,删除所有的程序快,然后把OB1调用的FC10,FC11,FC12删除,相当于OB1为空了,然后重新下载硬件组态,重新下载程序块OB1,FC10,FC11,FC12,这时候SF灯不亮,然后我重新在OB1里面把FC10,FC11,FC12重新调用一次,再把OB1下载下去,SF灯不亮,PLC能正常工,作我只是把空的OB1下载下去,然后重新调用功能,这和我直接OB1下载OB1不一样吗?为什么会出现这样的问题?谢谢。
最佳答案
1、在CPU停机时,把程序块OB1,F10,11,12下载下去之后再将CPU置于运行,不会出问题的。
2、在CPU运行时,下载程序要讲究下载的次序,先下载FC10,11,12,后下载OB1。如果先下载OB1,此时CPU中没有被调用的FC,会报错的。一般规则,先下载被调用的,后下载调用的。
提问者对于答案的评价:
谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc236467.html