CP342-5 模块使用心得 项目要求:3 台西门子S7-312 PLC 通过MPI 连接进行数据交换,然后,数据经过PROFIBUS-DP 通讯模块——PROFIBUS-DP/MODBUS网关,与客户的 MODBUS 设备进行数据通讯。 本程序中基本可分为 MPI 通讯,PROFIBUS-DP 主从通讯(CP342-5 为主站,网关的 PROFIBUS-DP 为从站,),客户的 MODBUS-RTU(RS485)主从通讯(客户 MODBUS 为主站,网关的 MODBUS 为从站)。 首先,建立项目并组态硬件,安装网关的 GSD 文件及添加网关图标文件。 具体方法是将 GSD 文件拷贝到 Step7\S7DATA\GSD 下,图标文件拷贝到 Step7\S7DATA\NSBMP 下。配置如下图 配置完成硬件后,编译存盘。具体组态地址如图 编写MPI 通讯程序,根据本系统要求,故采用单向通讯 与双向通讯时两方都需要编写发送和接收块不同,单向通讯只在一方编写 通讯程序,这也是客户机与服务器的关系,编写程序一方的CPU 作为客户机, 没有编写程序一方的CPU 作为服务器,客户机调用SFC 通讯块对服务器的数据 进行读写操作,这种通讯方式适合S7-300/400/200 之间通讯,S7-300/400 的 CPU 可以同时作为客户机和服务器,S7-200 只能作服务器。SFC67 (X_GET) 用 来读回服务器指定数据区中的数据并存放到本地的数据区中,SFC68 (X_PUT) 用来写本地数据区中的数据到服务器中指定的数据区中,我们以举例的方式说 明怎样调用SFC 通讯块来实现单向通讯,先介绍 S7-300/400 之间的通讯,与上 例一样,建立两个 S7 站,STATION1, CPU 为S7-416-2 ,MPI 地址为2 作为客户 机; STATION2 ,CPU 为S7315-2DP, MPI 地址为4 作为服务器,调用SFC68, CPU416 把本地数据区的数据DB1.DBB0 以后的76 个字节存储在CPU315 的 DB1.DBB0 以后的76 个字节中,调用SFC67, CPU416 读出 CPU315 的数据 DB1.DBB0 以后的76 个字节,放到本地 DB2.DBB0 以后的76 个字节中,例子程 序如下(通常在OB35 中编写): 参数DEST_ID 表示对方的MPI 地址,VAR_ADDR 表示指定服务器的数据区, SD 表示本地数据区(数据源),当 M1.1 为1 时,CPU416 将数据区的数据从 DB1.DBB0 以后的76 个字节的数据存放到CPU315 的数据区DB1.DBB0 以后的76 个字节中。 RD 为本地数接收区,当M1.3 为1 时, CPU416 将CPU315 中从DB1.DBB0 以 后的76 ...