对于自由口通信,还要注意以下几点:
(1)由于S7-200通信端口是半双工通信口,所以发送和接收不能同时进行。
(2)S7-200通信口处于自由口模式下时,该通信口不能同时工作在其他通信模式下;如不能在端口1进行自由口通信时,又使用端口1进行 PPI 编程。
(3)S7-200通信端口是RS-485标准,因此如果通信对象是RS-232设备,则需要使用RS232/PPI电缆。
(4)自由口通信只有在S7-200处于RUN模式下才能被激活,如果将 S7-200设置为STOP模式,则通信端口将根据S7-200系统块中的配置转换到PPI协议。
使用自由口通信前,必须了解自由口通信工作模式的定义方法,即控制字的组态。S7-200的自由口通信的数据字节格式必须含有一个起始位、一个停止位,数据位长度为7位或8位,校验位和校验类型(奇、偶校验)可选。
S7-200的自由口通信定义方法为将自由口通信操作数传入特殊寄存器SMB30(端口0)和SMB130(端口1)进行端口定义,自由口通信操作数定义如图25-2所示。
自由口通信模式主要使用XMT(发送)、RCV(接收)两条指令以及相应的特殊寄存器。
XMT 指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,一次最多发送255个字节。XMT 指令完成后,会产生一个中断事件(Port 0为中断事件9,Port1为中断事件26)。XMT 指令的缓冲区格式如表25-1所示。
RCV指令可以从S7-200的通信口接收一个或多个数据字节,接收到的数据字节将被保存在接收数据缓冲区内。RCV 指令完成后,会产生一个中断事件(Port 0为中断事件23,Port1 为中断事件24)。特殊寄存器 SMB86 和 SMB186 则分别提供Port0 和 Port1 的接收信息状态字节。RCV 指令的缓冲区格式如表25-2所示。
(2)程序清单
本例PLC程序包括主程序,子程序SBR_0、SBR_1和中断子程序INT_0,程序清单及注释如图25-4~图25-7所示。
需要说明的是中断事件10是由中断0产生的时间中断,该时间中断的间隔的范围为1~255ms,中断间隔的数值由 SMB34 定义。由于RS-232传输线由空闲状态切换到接收模式需要切换时间 (一般为0.15~14ms),故为防止传送失败,设置的中断间隔必须大于切换时间,并再增加一些余量。
(3)超级终端接收组态
超级终端组态步骤如下:
第一步:单击“开始→附件→通信→超级终端”,为要新建的连接输入连接名称,如图25-8所示。
第二步:选择连接时要使用的串口,如图25-9所示。
第三步:设置串口通信参数并保存连接,注意此处设置要与PLC程序中对应,如图25-10所示。
第四步:使用超级终端接收 S7-200发送的信息。将I0.3置为ON,单击按钮进行连接,超级终端的窗口会自动显示 S7-200发送的字符串,如图25-11所示。
图25-11 超级终端接收窗口
2.自由口接收实例
任务:S7-200从端口0接收计算机发送的字符串,并在信息接收中断服务程序中把接收到的第 一个字节传送到CPU输出字节QB0上显示。
(1)程序清单
本例PLC程序包括主程序,子程序SBR_0、SBR_1和中断子程序INT_0,程序清单及注释如图25-12~图25-15所示。
(2)超级终端发送组态
第一步:打开刚才建立好的超级终端链接,进入该链接的属性窗口,如图25-16所示。点击“ASCII 码设置”按钮,在弹出的ASCII码设置窗口中,按图25-17所示方式进行设置。
第二步:把 PLC 转换到运行状态,同时把I0.3置为ON,在超级终端中输入字符串,如图25-18所示。
第三步:在Micro/Win软件中使用状态表监测缓冲区和 QB0 内容,如图25-19所示。图25-19 使用状态表进行监测
联系客服