两个300的PLC如何通过mpi方式进行数据交换
林慧玲
发布于2014-03-24 17:51
1
0
标签:
两个300的plc如何通过mpi方式进行数据交换
佳答案
通过mpi接口在cpu间循环地交换少量数据,当过程映像被刷新时,在循环扫描检测点上进行数据交换;而无组态的连接的mpi通信(编程通信)通过调用sfc67和sfc68来实现,mpi无组态连接就是mpi通信时,不需要组态,只要编写通信程序即可实现通信,plc之间可以采用双边编程通信和单边编程通信方式,这里应该是采用单边编程通信方式,因为cpu313c需要从老系统上用mpi通讯读取一个模拟量和16个数字量的数据,只要在cpu313c上进行编程就可以实现数据交换,编程通信要比全局数据传输的数据量要大,速度更快;
首先必须把两个plc之间的mpi端口连接起来,设定主站cpu313c的mpi通信参数(波特率187.5kbit/s)和主站的mp地址如“3”,不能与老的plc的mpi地址重复,把两个站的波特率设定一样,各自下载到plc中;因为只想老系统上用mpi通讯读取一个模拟量和16个数字量的数据,在cpu313c中单边编程,在读取数据区只要指定对方的plc的mpi地址和数据区就可以了。
x_put(sfc68)为发送数据的指令,通过此指令将数据写入不在同一个本地s7站中的通信伙伴,其中dest_id为对方的mpi地址(这里指老系统plc的mpi地址)和var_addr为对方的数据区,sd为本地数据区,必须保证sd参数定义的数据长度和数据类型与通信伙伴上var_addr一致;
x_get(sfc67)为接收数据的指令,可以从本地站s7站以外的通信伙伴(这里指老系统上plc站)中读取数据,其中参数dest_id和var_addr分别指对方的mpi地址和对方的数据区,rd为本机的数据区必须保证rd参数定义的接收区(cpu313c)至少和由var_addr参数定义的要读取的区域一样大,而且类型必须相匹配。