对于PPI和MPI通信的详细解析

1 内容概述
首先,这里对s7-200通讯性能做一个整体介绍,请看cpu200和扩展模块示意图(上图),cpu200会集成1~2个rs485通讯口,集成的通讯口可以实现ppi、mpi和自由口通讯,在自由口方面,西门子 已经为客户开发modbus rtu主站和从站通讯指令库-uss通讯指令库。cpu200后的第一个扩展模块是cp243-2,是asi主站通讯模块,使用两个槽位资源,支持的协议版本是2.1版本。第二个扩展模块是em277,是标准的profibus dp从站通讯模块,em277后面的em241模块是一个模拟的电话调制解调器模块。最后两个模块cp243-1、cp243-1it是以太网通讯扩展模块,支持西门子内部的s7协议,目前已经有新一代的cp243-1模块来代替之前的两个模块。cp243-1的it功能主要包括email、html和ftp三种。
2 ppi通信
(1)ppi通信
ppi协议原为点对点通讯,是一个主站-从站协议,主站设备将通讯请求发送至从站设备,然后从站设备进行响应,随着产品的发展,目前也支持多主站网络。ppi协议是基于开放互联osi 7层模型的通讯结构的基础上通过令牌环实现网络。ppi使用1位起始位,1位停止位,8位数据位和偶校验。ppi协议使用cpu200集成的rs485通讯口,可以实现编程通讯,s7-200plc之间的通讯以及和人机界面之间的通讯。cpu200集成的通讯口有一个pg连接资源和三个op连接资源,支持的波特率有9.6k、19.2k和187.5k,支持多主站,最远的通讯距离为50米,一个网段内最多有32个节点,可以使用中继器进行网段隔离以及通讯距离的扩展
(2)cpu200之间的ppi通信
我们首先介绍两个cpu200之间的ppi通讯,这里的两个s7-200plc分别是ppi的主站和从站,在主站一侧,用户需要配置网络读写向导,使用向导生成的子程序。在从站一侧,只需要在系统块中设置与主站相同的通讯速率和不同的通讯地址即可。
我们打开s7-200编程软件,点击工具下拉菜单,选择指令向导,在指令向导中选择网络读写向导,然后点击下一步(如图1);
本界面(图2)是向导中的第一步,用户首先要设置一共要配置多少条网络读/写操作,cpu200允许用户最多配置24个网络读写操作;
接下来(图3)用户选择使用哪个通讯口进行ppi通讯,0口或者1口,一旦选定了,此向导所有的网络读写操作都会经过该口,向导会为子程序定义一个缺省的名称,默认是net_exe,当然也可以修改这个名称;
在这里(图4)我们逐条定义每条网络通讯读写内容。首先定义此操作是网络读还是网络写,从远程plc的什么地址范围读或者写多少个字节到本地的什么地址,有效的数据存储区为vb、ib、qb、mb,每条网络读写可以传送16个字节的数据。远程plc的地址必须与从站plc系统块里的端口地址相同。在本截图(图4)的例子中,主站是从从站的vb0读到本地的vb0,一共读16个字节的数据,配置完成后我们点击下一项操作按钮,即可编辑下一个网络读或者写操作,全部操作配置完成后,点击下一步按钮即可继续;
向导即将配置完成时,会提示用户为其分配一段未使用的v存储区地址范围(图5),配置的每一个网络操作需要12个字节的v存储区地址空间,如果配置了两个网络读写操作就会占用24个字节的v存储区地址空间,用户也可以自己定义或使用建议地址来选取v存储区的地址范围。需要注意的是,要保证用户程序中已占用的v存储区地址以及网络操作中读写所占用的v存储区区域以及向导此处所占用的v存储区地址空间不能够有任何重复,否则会导致程序不能正常工作;
网络读写向导会自动生成一个子程序和一个全局符号表(图6);
向导生成的net_exe需要在主程序中用sm0.0持续调用,子程序的timeout输入管脚是超时参数管脚,如果通讯中遇到问题,等待时间超过此延时时间,net_exe子程序会报错,在这里(下图)填0表示不启动延时检测,我们可以以秒为单位指定延时检测时间,有效数据范围为1-36767。
向导子程序内部会自动协调同一时刻只有8条网络读或网络写指令被激活。
3 mpi通信
(1)mpi通信
s7-200plc集成的485接口可以作为mpi的从站,通过mpi通讯可以实现s7-200plc的编程通讯,s7-200与s7-300/400集成mpi口之间的通讯,与hmi人机设备之间的通讯。作mpi通讯时,s7-200plc支持的波特率为19.2kps和187.5kps,另外mpi通讯设备不能与作为ppi主站的s7-200plc进行数据交换。。
s7-200与s7-300之间采用mpi通讯时,s7-200plc不需要编写任何与通讯有关的程序,只需要将要交换的数据整理到一个连续的v存储区当中即可。而在s7-300plc中需要在程序中调用系统功能x_get(sfc67)和x_put(sfc68),每次读或者写操作由sfc的功能管脚req输入的1信号触发,dest_id是指s7-200plc的mpi地址,在本例子中(上图)是2。s7-200的v存储区被s7-300plc看作是db1,因此在远程数据地址输入管脚var_addr我们填写的p#db1.dbx0.0 byte 8即是从s7-200plc vb0开始的8个字节,sd和rd指向的是s7-300内部的数据存储区,在本例子中使用的都是m存储区。

关于TOF和双目视觉的差异性分析
厨余垃圾处理器有用吗?未来家电必备
压电纳米运动产品在笼式结构光学系统中的应用
雷柏VM120入耳式游戏耳机评测 值不值得买
IP68 级防水旗舰的内部是如何的?索尼XPERIA Z5 拆解
对于PPI和MPI通信的详细解析
华为副董事长郭平线上分享演讲稿件(完整版)
农业气象站系统监测要素有哪些
电感的常见作用有哪些
通信广播卫星的轨位资源与邻星协调
M1 Mac占有笔记本市场份额0.8%
“中国制造”向“中国智造”转变,加速向科技创新强国迈进
用万用表(机械表)电阻档判断电容器的好坏
传感器技术给自动化生产带来了什么积极影响
FORESEE推出采用长鑫存储颗粒的DDR4国产化内存
基于自监督逻辑归纳的模糊时序推理框架LECTER
智能运维第一步:HDD磁盘故障预测
泰克通信公司推出互动语音应答系统,测试VoIP体验质量
苹果A17芯片VS华为麒麟9000S,哪个更强?
什么是片选信号_片选信号cs的作用