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向导:
|