HardwareSoftwareWorkshopS7-200自由口通信SIMATICS7-200SIMATICS7-200HardwareSoftwareWorkshopS7-200•概述•设置说明–工作模式定义–XMT指令–RCV指令•编程示例–自由口发送示例–自由口接收示例提纲S7-200自由口通信HardwareSoftwareWorkshopS7-200•S7-200CPU具有自由口通信能力。•自由口通信是一种基于RS485硬件基础上,允许应用程序控制S7-200CPU的通信端口、以实现一些自定义通信协议的通信方式。•S7-200CPU处于自由口通信模式时,通信功能完全由用户程序控制,所有的通信任务和信息定义均需由用户编程实现。•借助自由口通信模式,S7-200CPU可与许多通信协议公开的其他设备、控制器进行通信,其波特率为1200~115200bit/s。概述HardwareSoftwareWorkshopS7-200•S7-200可通过自由口通讯协议访问下列设备:概述SIEMENSSIMATICS7-200CPU214SFRUNSTOPI0.0I0.1I0.2I0.3I0.4I0.5I0.6I0.7I1.0I1.1I1.2I1.3I1.4I1.5Q1.0Q1.1Q0.0Q0.1Q0.2Q0.3Q0.4Q0.5Q0.6Q0.7调制解调器–带用户端软件的PC机–条形码阅读器–串口打印机–并口打印机–S7-200–S7-300withCP340–非SiemensPLC–调制解调器监控端软件第三方PLCS7-200打印机条码阅读HardwareSoftwareWorkshopS7-200•补充说明:•(1)由于S7-200CPU通信端口是半双工通信口,所以发送和接受不能同时进行。•(2)S7-200CPU通信口处于自由口模式下时,该通信口不能同时工作在其他通信模式下。如不能端口1在进行自由口通信时,又使用端口1进行PPI编程。•(3)S7-200CPU通信端口是RS485标准,因此如果通信对象是RS232设备,则需要使用RS232/PPI电缆。•(4)自由口通信只有在S7-200CPU处于RUN模式下才能被激活,如果将S7-200CPU设置为STOP模式,则通信端口将根据S7-200CPU系统块中的配置转换到PPI协议。概述HardwareSoftwareWorkshopS7-200•概述•设置说明–工作模式定义–XMT指令–RCV指令•编程示例–自由口发送示例–自由口接收示例提纲S7-200自由口通信HardwareSoftwareWorkshopS7-200•工作模式定义•XMT指令•RCV指令设置说明HardwareSoftwareWorkshopS7-200•使用自由口通信前,必须了解自由口通信工作模式的定义方法,即控制字的组态。•S7-200CPU的自由口通信的数据字节格式必须含有一个起始位、一个停止位,数据位长度为7位或8位,校验位和校验类型(奇、偶校验)可选。•S7-200CPU的自由口通信定义方法为将自由口通信操作数传入特殊寄存器SMB30(端口0)和SMB130(端口1)进行端口定义,自由口通信操作数定义如下所示:工作模式定义HardwareSoftwareWorkshopS7-200工作模式定义HardwareSoftwareWorkshopS7-20010•工作模式定义•XMT指令•RCV指令10设置说明HardwareSoftwareWorkshopS7-20011•自由口通信模式主要使用XMT(发送)和RCV(接收)两条指令,以及相应的特殊寄存器。•XMT指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,一次最多发送255个字节。•XMT指令完成后,会产生一个中断事件(Port0为中断事件9,Port1为中断事件26)。•XMT指令的缓冲区格式如下表所示:XMT指令HardwareSoftwareWorkshopS7-20012•工作模式定义•XMT指令•RCV指令12设置说明HardwareSoftwareWorkshopS7-20013•RCV指令可以从S7-200CPU的通信口接收一个或多个数据字节,接收到的数据字节将被保存在接收数据缓冲区内。•RCV指令完成后,会产生一个中断事件(Port0为中断事件23,Port1为中断事件24)。特殊寄存器SMB86和SMB186则分别提供Port0和Port1的接收信息状态字节。•RCV指令的缓冲区格式如下表所示:RCV指令HardwareSoftwareWorkshopS7-20014•概述•设置说明–工作模式定义–XMT指令–RCV指令•编程示例–自由口发送示例–自由口接收示例提纲14S7-200自由口通信HardwareSoftwareWorkshopS7-20015•自由口发送示例–概述–PLC程序说明–超级终端接收组态•自由口接收示例–概述–PLC程序说明–超级终端发送组态15编程示例HardwareSoftwareWorkshopS7-20016•概述•PLC程序说明•超级终端接收组态16自由口发送示例HardwareSoftwareWorkshopS7-20017•1功能要求•记录定时中断次数,将计数值转化为ASCII字符串,再通过CPU224XP的Port0发送到计算机串口,计算机接受并利用超级终端显示与S7-200CPU通信的内容。•2硬件需求•带串口的PC机、S7-200CPU224XP、RS232电缆(推荐采用西门子S7-200串口编程电缆)概述HardwareSoftwareWorkshopS7-20018•3简要实现步骤•(1)编写S7-200PLC程序。•(2)下载程序到S7-200PLC中。•(3)配置计算机的超级终端。•(4)使用计算机上超级终端接收并显示与S7-200CPU通信的通信内容。自由口发送示例HardwareSoftwareWorkshopS7-20019•概述•PLC程序说明•超级终端接收组态19自由口发送示例HardwareSoftwareWorkshopS7-20020•1规定缓冲区为VB100到VB114,使用数据块进行缓冲区定义。•在Step7-Micro/Win中组态数据块,如下图所示。•16#0D和16#0A用于计算机的超级终端显示需要。PLC程序说明HardwareSoftwareWorkshopS7-20021•2程序结构及用途•主程序:根据I0.3状态初始化端口1为自由口通信•SBR_0:定义端口0为自由口,初始化定时中断•SBR_1:定义端口0为普通PPI从站通信口•INT_0:对定时中断计数并从端口0发送计数值PLC程序说明HardwareSoftwareWorkshopS7-20022•1)主程序编程PLC程序说明HardwareSoftwareWorkshopS7-20023•2)SBR_0编程PLC程序说明HardwareSoftwareWorkshopS7-20024•3)SBR_1编程PLC程序说明HardwareSoftwareWorkshopS7-20025•4)INT_0编程•补充说明:中断事件10是由中断0产生的时间中断,该时间中断的间隔的范围为1ms~255ms,中断间隔的数值由SMB34定义。由于RS232传输线由空闲状态切换到接收模式需要切换时间(一般为0.15~14ms),故为防止传送失败,设置的中断间隔必须大于切换时间,并再增加一些富余。PLC程序说明HardwareSoftwareWorkshopS7-20026•概述•PLC程序说明•超级终端接收组态26自由口发送示例HardwareSoftwareWorkshopS7-20027•超级终端(HyperTerminal)是Windows操作系统提供的通信测试程序,本例程用它来监测计算机和S7-200CPU之间的串口通信。超级终端和Step7Micro/Win这类应用程序进行串口操作时都会占用计算机串口的控制权,所有不能同时进行对同一个串口进行操作。•超级终端组态步骤如下:•1执行Windows菜单命令“开始”“附件”“通信”“超级终端”,为要新建的连接输入连接名称。超级终端接收组态HardwareSoftwareWorkshopS7-20028•2选择连接时要使用的串口。超级终端接收组态HardwareSoftwareWorkshopS7-20029•3设置串口通信参数并保存连接,注意此处设置要与PLC程序中对应。超级终端接收组态HardwareSoftwareWorkshopS7-20030•4设置串口通信参数并保存连接,注意此处设置要与PLC程序中对应。超级终端接收组态HardwareSoftwareWorkshopS7-20031•5使用超级终端接收S7-200CPU发送的信息。•将I0.3置为ON,单击按钮进行连接,超级终端的窗口会自动显示S7-200CPU发送的字符串。超级终端接收组态HardwareSoftwareWorkshopS7-20032•自由口发送示例–概述–PLC程序说明–超级终端接收组态•自由口接收示例–概述–PLC程序说明–超级终端发送组态32编程示例HardwareSoftwareWorkshopS7-20033•概述•PLC程序说明•超级终端发送组态33自由口接收示例HardwareSoftwareWorkshopS7-20034•1功能要求•S7-200CPU从端口0接收计算机发送的字符串,并在信息接收中断服务程序中把接收到的第一个字节传送到CPU输出字节QB0上显示。•2硬件需求•与“自由口发送”相同。•3简要实现步骤•(1)编写S7-200PLC程序。•(2)下载程序到S7-200PLC中。•(3)配置计算机的超级终端。•(4)使用计算机上超级终端发送信息,并通过状态表查看S7-200CPU接收到的通信内容。概述HardwareSoftwareWorkshopS7-20035•概述•PLC程序说明•超级终端发送组态35自由口接收示例HardwareSoftwareWorkshopS7-20036•1程序结构及用途•主程序:根据I0.3状态初始化端口1为自由口通信•SBR_0:定义端口0为自由口,初始化接收指令•SBR_1:定义端口0为普通PPI从站通信口•INT_0:在QB0输出接收到的第一个字节PLC程序说明HardwareSoftwareWorkshopS7-20037PLC程序说明•1)主程序编程HardwareSoftwareWorkshopS7-20038•2)SBR_0编程PLC程序说明HardwareSoftwareWorkshopS7-20039•3)SBR_1编程PLC程序说明HardwareSoftwareWorkshopS7-20040•4)INT_0编程PLC程序说明HardwareSoftwareWorkshopS7-20041•概述•PLC程序说明•超级终端发送组态41自由口接收示例HardwareSoftwareWorkshopS7-20042•1配置超级终端链接•(1)打开刚才建立好的超级终端链接,进入该链接的属性窗口。超级终端发送组态HardwareSoftwareWorkshopS7-20043•(2)点击“ASCII码设置”按钮,在弹出的ASCII码设置窗口中,按下图方式进行设置。超级终端发送组态HardwareSoftwareWorkshopS7-20044超级终端发送组态•2接收超级终端发送的信息•(1)把PLC转换到运行状态,同时把I0.3置为ON。•(2)在超级终端中输入字符串。HardwareSoftwareWorkshopS7-20045•(3)在Step-Micro/Win32中使用状态图,监测缓冲区和QB0内容。超级终端发送组态HardwareSoftwareWorkshopS7-20046Thankyouforyourattention!