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