PLC_SIM 作为SIEMENS S7-300/400 系列PLC 的仿真软件,在使用时需要有些注意事项,毕竟任何的仿真软件和真正的设备还是有一定差异的,由此而产生的误会经常会令很多客户摸不着头脑,今天我来说说前几天碰到的一个。
客户:我的300PLC,下载程序后CPU停机,SF灯亮?
我:您能看一下诊断缓冲区的信息吗
客户:哦,我在线看一下,全是IO访问错误,读操作
我:您看一下下面的详细内容,有什么提示?
客户:P区域地址256
我:那是您程序里有读256这个地址,但实际硬件没有这个地址。那您看一下,您的程序里有OB122吗?
客户:没有
我:您先建个OB122下载下去,CPU就可以不停机了。
客户:好的,你等我一下,我新建OB122,下载
过了2分钟,
客户:好了,我的CPU运行起来了。可是为什么SF灯还是亮的呢?
我:您刚才下载OB122只是避免IO访问错误造成的CPU停机,但是您的程序还是有错误的,您需要查程序找出错误。就像刚才说的256这个输入地址的模块是不是存在。
客户:好的,我先查程序。
过10分钟后客户打来电话
客户:我刚才查了一下,我的程序里有个FC4一调用就报IO访问错误
我:您FC4都写了些什么程序
客户:就是我的模拟量处理, PIW 256装载、传送这些指令
我:那就好,您查一下是不是写错地址了
客户:没有啊,我查过了诊断信息里提到的所有的地址都和我的AI模板对应。
我:(暗自寻思,不对啊,不应该出现这种现象啊!)您的FC4离线和在线的一致吗?
客户:一致,我是点完在线后逐条查的。
我:那除了CPU有红灯外,模板上有红灯亮吗?
客户:模板?没有,我是使用仿真模拟的!
我:(抓狂,原来是仿真,这和真的CPU硬件还是有区别的)您稍等,我也建个项目
最短时间,建了一个S7-300的项目添加一个AI模板地址256,程序里写个MOV指令PIW256到MW100,下载到PLCSIM中,CPU运行正常,没有出现客户的错误!
我:您好,我也使用PLC_SIM仿真了模拟量读写的程序,没有报错,是不是您的项目有问题?您的具体配置是什么?
客户:我就是一个CPU314和一些IO模板
我:您是用CPU314,我用的是315-2dp,稍等,我也换成CPU314。(将刚才测试项目CPU换成314,下载到PLCSIM中,奇怪SF灯亮了,CPU停机,诊断缓冲区显示IO访问错误,地址256。为什么会这样??看来仿真对CPU还是有要求的,只能再查一下资料了!)我也出现同样的错误了,我需要查一下资料,稍后再给您回复。
接下来半小时开始了资料的查找工作,老天睁眼终于查到了个相关解释。原来CPU314这类不带集成DP口的CPU使用PLCSIM仿真IO模板操作时和实际CPU还是有区别的。它不会识别IO模块的组态,所以采用PIW这种方式访问会报错。赶紧和客户沟通解示了原因,如果想仿真IO读写操作,在下载项目到PLC_SIM前,将CPU换成带集成DP口的CPU如315-2DP就可以了。(这也是我第一次建立的测试项目使用CPU315-2DP没有报错的原因。)