sppi 协议是s7-200 cpu 最基本的通信方式,通过原来自身的端口(port0 或port1)就可以实现通信,是s7-200 默认的通信方式。ppi 是一种主—从协议通信,主—从站在一个令牌环网中,主站发送要求到从站,从站响应;从站不发信息,只是等待主站的要求并对要求作出响应。如果在用户程序中使能ppi 主站模式,就可以在主站程序中使用网络读写指令来读写从站信息。而从站程序没有必要使用网络读写指令。
实现ppi 通信的步骤
(1)对每一台plc,设置其系统块中的通信端口参数,对用作通信的端口(port0 或port1),指定其地址(站号)和波特率。设置后把系统块下载到该plc。具体设置如下:把cpu226端口0 设为1 ,波特率为了19.2 ,cpu 224端口0 设为2 ,波特率为了19.2 。
(2)编写主站网络读写程序段,如前所述,在ppi 网络中,只有主站程序中使用网络读写指令来读写从站信息。而从站程序没有必要使用网络读写指令。在编写主站的网络读写程序前,应预先规划好下面数据:
① 主站向从站发送数据的长度(字节数)。
② 发送的数据位于主站何处。
③ 数据发送到从站的何处。
④ 主站从各从站接收数据的长度(字节数)。
⑤ 主站从从站的何处读取数据。
⑥ 接收到的数据放在主站何处。
以上数据,应根据系统工作要求,信息交换量等统一筹划。考虑本设备中,工作站plc 所需交换的信息量不大,发送和接收的数据均1 个字节已经足够。
编制主站的网络读写程序简便的方法是借助网络读写向导。这一向导程序可以快速简单地配置复杂的网络读写指令操作,为所需的功能提供一系列选项。一旦完成,向导将为所选配置生成程序代码。并初始化指定的plc为ppi 主站模式,同时使能网络读写操作。
网络读写编程大致有如下几个步骤:
规划本地和远程通信站的数据缓冲区
写控制字smb30(或smb130)将通信口设置为ppi主站
装入远程站(通信对象)地址
装入远程站相应的数据缓冲区(无论是要读入的或者是写出的)地址
装入数据字节数
执行网络读写(netr/netw)指令
各cpu的通信口地址在各自项目的systemblock(系统块)中设置,下载之后起作用。
调用netr/netw指令
多数网络读写的不正常现象,除了硬件设备和软件设置的问题外,与在用户程序中调用网络读写指令的方式有关。包括看起来通信正常,但经过一段时间(可能是几天)后也会出现故障的现象。
使用用netr/netw时,应当注意:
避免简单地定时激活netr/netw:由于串行通信的特点,无法得知何时真正结束。如果定时进行网络读写通信,必须判断此次通信是否正常结束 同时有效的netr/netw指令不能超过8个,否则通信请求队列会超出操作系统的管理能力 使用sm0.0调用网络读写指令,虽然能长期工作,但不能超过8个指令,而且会出现监控时指令块变为红色的现象,最好还是加上必要的读写状态判断条件。 最简单可靠的方法,是使用micro/win中的netr/netwwizard(网络读写指令向导)。
使用netr/netw向导可以编辑最多24条网络读写指令,其核心是使用顺序控制指令,这样在任一时刻只有一条netr/netw指令有效。如果要求超出24条网络读写指令,可以自己按照此方法编程。 清除网络读写指令数据缓冲区中的(故障)状态字节可以恢复“死掉”的通信。但还是建议用户采用比较正规的编程方法。 netr/netwwizard-网络读写指令向导 只有在ppi通信中做主站的cpu才需要用netr/netw向导编程。
配置netr/netw向导: