S7-1200 做 DP Master 通讯时,DP slave 丢失后,CPU不会停机,也不需要向 CPU下载组织块。
对PROFIBUS DP 的故障诊断,有如下几种方法:
前面板上的 DIAG 灯,绿色正常,有错误和问题时提示为红色。上盖后面的 RUN / STOP 、ERROR 和前面板的DIAG灯相组合,给出模块状态:
▲ 图1. 早期 CM1243-5固件版本 V1.0 & V1.1 的故障指示灯
▲ 图2. CM1243-5 固件版本 V1.2 & V1.3 的故障指示灯
①早期 CM1243-5 固件版本V1.0 & V1.1在STEP 7 V11中查看CPU 诊断缓冲区中的条目。
▲ 查看在线状态下模块的信息
②较新版本的CM1243-5 例如 V1.3版本在TIA V13SP1中查看诊断缓冲区里从站丢站的信息记录如下:
CM1243-5使用 DPNRM_DG 指令,可以读取PROFIBUS DP从站的诊断数据。
DPNRM_DG 指令参数:
REQ:读取请求
LADDR:从站诊断地址
RECORD:读取到的诊断数据存放的目标地址
RET_VAL:执行指令出错时返回错误代码
BUSY:正在读诊断数据
CM 1242-5 支持6 个字节的标准诊断,和6 个字节的设备特定的诊断,通过标准诊断,可得到从站状态。
标准诊断数据概述:
标准诊断数据信息:
标准诊断数据读取方法:
在主程序OB1调用S7-1200“扩展指令/分布式I/O/其它”的 DPNRM_DG指令。单击块参数LADDR,将在下拉列表中选择DP从站诊断地址,读取的诊断数据存放在DB4 中。
通过监视表格查看诊断数据:
要对RCV_PTP赋值参数,首先需要创建RCV_PTP的背景数据块和发送缓冲数据块,双击“Devices”——>“PLC_1”——>“Program Block ”——“Add new block”,在弹出的串口命名DB_RCV_PTP,选择DB块,在Type后选择“RCV_PTP(SFB114)”
插入背景DB后,再插入接收缓冲DB块,重复上面的步骤,只是在选择DB类型为“GlobalDB”,并去掉“Symbolicaccess only”选项的勾(这样可以对该DB块进行直接地址访问),并取名该DB块为DB_RCV_BUFF。建好这两个DB块后,双击打开DB_RCV_BUFF定义接收缓冲区数据的类型,如下图所示:
定义完接收缓冲区后,接下来就可以对RCV_PTP赋值参数,赋值参数后如下图:
在上面的编程块里需要注意的是,在指定接收缓冲区时。字符的开始地址是从第二个字节,而不是零字节开始,即是P#DB2.DBX2.0Byte10 而不是P#DB2.DBX0.0Byte10,原因是由于S7-1200对字符串的存放的格式造成的,S7-1200对字符串的前两个字节的定义第一字节是Zui大的字符长度,第二个字节是实际的字符长度。接下来才是存放实际字符。如下图:
上面就完成了程序的编写,对项目进行编译;右击PLC_1项目在弹出的菜单里选择“CompliesALL”选项,这样就对硬件与软件进行编译,如下图: