资源描述
4.1 PPI通讯通讯4.1.1 概述概述PPI协议是协议是S7-200 PLC中最基本的一种通信方式,中最基本的一种通信方式,通过通过S7-200 CPU自身的端口自身的端口(port0或或Port 1)即可即可完成,是完成,是S7-200 CPU默认的通信协议。默认的通信协议。PPI是一种主是一种主-从协议,协议定义了主站和从站,从协议,协议定义了主站和从站,网络中主站向网络中的从站发出请求,从站只能网络中主站向网络中的从站发出请求,从站只能对主站发出的请求做出响应,自己不能发出请求。对主站发出的请求做出响应,自己不能发出请求。主站也可以对网络中其他主站的请求做出响应。主站也可以对网络中其他主站的请求做出响应。S7-200的通信口为的通信口为RS-485接口,接口,PC/PPI多主站电缆用于计算多主站电缆用于计算机与机与S7-200之间的通信,有之间的通信,有RS-232CPPI和和USBPPI两种两种电缆。电缆。PPI网络连接示意图如图网络连接示意图如图10-1所示,要求如下所示,要求如下:(1)每个网段至多)每个网段至多32个网络节点;个网络节点;(2)每个网段最长)每个网段最长50米米(不用中继器不用中继器),可通过中继器扩展网络,可通过中继器扩展网络,最多,最多9 个中继器;个中继器;(3)网络可包含)网络可包含127节点;节点;(4)网络可包含)网络可包含32个主站;个主站;(5)网络总长)网络总长9600米。米。一个网段 一个网段 一个网段 50米 最多1000米 50米图4-1 PPI网络连接示意图PROFIBUS连接器和电缆将CP通信卡和S7-200通信口连接。不同主/从站之间也可以通过PROFIBUS连接器和电缆进行连接通信。PPI是主/从协议,默认情况下网络中的S7-200 CPU均为从站,其他CPU、SIMATIC编程器或文本显示器(例TD400C等)为主站。PPI网络包括单主站PPI网络和多主站PPI网络。1网络读写指令网络读写指令NETR/NETW网络读取(NETR)指令开始一项通讯操作,通过指定的端口(PORT)从远程设备收集数据。网络写入(NETW)指令开始一项通讯操作,通过指定的端口(PORT)向远程设备写入数据。每一个NETR/NETW指令可从/向远程站读取/写入16个字节信息。网络读写指令是通过TBL参数表来指定报文头,TBL参数表如表4-1所示。字字节节7 07 00 0D DA AE E0 0错误代错误代码码1 1远程地址远程地址2 2远程站的数据区指针远程站的数据区指针(I、Q、M、V)3 34 45 56 6数据长度数据长度7 7数据字节数据字节08 8数据字节数据字节1.2222数据字节数据字节15表表4-1 网络读写指令网络读写指令TBL错误代码如表4-2所示:错误代码错误代码定定 义义0 0无错误无错误1 1远程站响应超时远程站响应超时2 2接受错误:奇偶校验错,响应时帧或校验出错接受错误:奇偶校验错,响应时帧或校验出错3 3离线错误:相同的站地址或无效的硬件引发冲突离线错误:相同的站地址或无效的硬件引发冲突4 4队列溢出错误:激活超过队列溢出错误:激活超过8个的个的NETR/TREW指令指令5 5通信协议错误:没有使用通信协议错误:没有使用PPI协议(协议(SMB30)而调用)而调用NETR/NETW指令指令6 6非法参数:非法参数:NETR/NETW表中包含非法或无效的值表中包含非法或无效的值7 7没有资源:远程站点正在忙中(上装或下载程序)没有资源:远程站点正在忙中(上装或下载程序)8 8第第7层错误:违反应用协议层错误:违反应用协议9 9信息错误:错误的数据地址或数据长度信息错误:错误的数据地址或数据长度1010保留保留表表4-2 错误代码表错误代码表2设定通信协议设定通信协议在程序的开始必须设定通信协议。SMB30用于配置通信端口0(Port 0),SMB130用于配置通信端口1(Port 1),此两个特殊寄存器字节的含义如表10-3所示。表10-3中:pp(校验选择)、d(每个字符的数据位)、bbb(自由口波特率)均为自由口通信时才需要设定的参数,在PPI通信时都设置为0即可。mm协议选择3设定设定NETW和和NETR的的TBL参数表参数表图4-3 网络写指令NETW图4-4 网络读指令NETR4通信参数设定通信参数设定CPU通信端口的设定可以通过STEP 7 Micro/WIN软件的“系统块(System Block)”选项来进行。最高地址(Highest Address波特率地址间隔刷新系数(Gap Update Factor)4.1.3 使用向导实现使用向导实现PPI通信通信图图4-5 “网络读网络读/写操作写操作”对话框对话框单击图4-5“下一项操作”按钮,进入第二项“网络读/写操作”对话框单击“下一步”,出现分配存储区对话框接下来,要调用向导生成的子程序来实现数据的传输,主站程序及注释如图10-6所示。图4-6 主站主程序4.2 自由口通信自由口通信S7-200 CPU的串行通讯口可由用户程序控制,这种操作模式称为自由口模式。自由口通信是一种基于 RS485硬件基础上,允许应用程序控制 S7-200 CPU 的通信端口,以实现一些自定义通信协议的通信方式。当选择了自由口模式,程序可以使用接收中断、发送中断、发送指令(XMT)和接收指令(RCV)来控制通讯操作。在自由口模式下,通讯协议完全由程序控制。SMB30(用于端口0)和SMB31(如果CPU有两个端口,则用于端口1)用于选择波特率和奇偶校验。S7-200 CPU 处于自由口通信模式时,所有的通信任务和信息定义均需由用户编程实现。只有CPU处于RUN模式时,才能进行自由端口通讯。4.2.1 自由口模式下的发送和接收指令自由口模式下的发送和接收指令S7-200 CPU的自由口通信的数据字节格式必须含有一个起始位、一的自由口通信的数据字节格式必须含有一个起始位、一个停止位,数据位长度为个停止位,数据位长度为7位或位或8位,校验位和校验类型(奇、偶校验)位,校验位和校验类型(奇、偶校验)可选。可选。S7-200 CPU的自由口通信定义方法为将自由口通信操作数传的自由口通信定义方法为将自由口通信操作数传入特殊寄存器入特殊寄存器 SMB30(端口(端口0)和)和 SMB130(端口(端口1)进行端口定义,)进行端口定义,自由口通信操作数定义如表自由口通信操作数定义如表4-4所示。所示。自由口通信模式主要使用XMT(发送)和RCV(接收)两条指令及相应的特殊寄存器。XMT 指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字节为单位发送一串数据字符,一次最多发送255个字节。表表4-5 XMT指令的缓冲区格式指令的缓冲区格式RCV指令可以接收一个或多个字符,最多有255个字符,这些字符存储在缓冲区中。RCV 指令的缓冲区格式如表4-6所示。当超界或奇偶校验错时,接收信息功能自动终止。必须为接收信息功能操作定义一个启动条件(x或z)和一个结束条件(y,t或最大字符数)。协议支持使用字符中断控制来接收数据。表表4-6 RCV指令的缓冲区格式指令的缓冲区格式4.2.2 自由口通信举例自由口通信举例1自由口发送实例自由口发送实例要求:记录定时中断次数,将计数值转化为ASCII字符串,再通过CPU224XP 的 Port0 发送到计算机串口,计算机接受并利用超级终端显示与 S7-200 CPU 通信的内容。(1)PLC编程编程规定缓冲区为 VB100 到 VB114,使用数据块进行缓冲区定义,如图4-7所示,16#0D和16#0A用于计算机的超级终端显示需要。图4-7 组态数据块主程序如图4-8所示,根据 I 0.3 状态初始化端口1为自由口通信。SBR_0 程序如图4-9所示,定义端口0为自由口,初始化定时中断。图4-8 自由口通信主程序图4-9 SBR_0子程序SBR_1子程序如图4-10所示,用于定义端口0为普通 PPI 从站通信口。图4-10 SBR_1子程序INT_0 程序如图4-11所示,对定时中断计数并从端口0发送计数值 图4-11 INT_0子程序图4-10 SBR_1子程序图4-11 INT_0子程序(2)超级终端设置)超级终端设置超级终端(超级终端(Hyper Terminal)是是 Windows 操作系统提供操作系统提供的通信测试程序,本例用来的通信测试程序,本例用来监测计算机和监测计算机和 S7-200 CPU 之间的串口通信。之间的串口通信。超级终端组态步骤如下:超级终端组态步骤如下:1)执行)执行 Windows 菜单命令菜单命令“开始开始”“附件附件”“通信通信”“超级终端超级终端”,为要新建,为要新建的连接输入连接名称。的连接输入连接名称。2)选择连接时要使用的串口。)选择连接时要使用的串口。3)设置串口通信参数并保存连)设置串口通信参数并保存连接,注意此处设置要与接,注意此处设置要与PLC程序中对应。程序中对应。4)使用超级终端接收)使用超级终端接收 S7-200 CPU 发送的信息。发送的信息。图4-12 超级终端接受显示2自由口接收实例要求S7-200 CPU 从端口0接收计算机发送的字符串,并在信息接收中断服务程序中把接收到的第一个字节传送到 CPU 输出字节QB0 上显示。(1)PLC编程 主程序如图4-13所示,根据I 0.3 状态初始化端口1为自由口通信。图4-13 自由口通信主程序SBR_0子程序如图4-14所示,用于定义端口0为自由口,初始化接收指令。图图4-14 SBR_0 程序程序SBR_1子程序如图4-15所示,定义端口0为普通 PPI 从站通信口。INT_0中断子程序如图4-16所示,在 QB0 输出接收到的第一个字节。(2)配置超级终端)配置超级终端打开前面建立的超级终端链接,进入属性窗口,点击“ASCII 码设置”按钮,在弹出的 ASCII 码设置窗口中,勾选“以换行符作为发送行末尾”和“本地回显键入的字符”两项。4.3 MODBUS通信通信Modbus通信协议是Modicon公司提出的一种报文传输协议,它广泛应用于工业控制领域,并已经成为一种通用的行业标准。不同厂商提供的控制设备可通过 Modbus 协议连成通信网络,从而实现集中控制。4.3.1 Modbus报文格式报文格式Modbus 地址通常是包含数据类型和偏移量的5个或6个字符值。第一个或前两个字符决定数据类型,最后的四个字符是符合数据类型的一个适当的值。(1)Modbus 主站寻址主站寻址Modbus主设备指令支持下列Modbus地址:00001至09999是离散输出(线圈);10001至19999是离散输入(触点);30001至39999是输入寄存器(通常是模拟量输入);40001至49999是保持寄存器。(2)Modbus 从站寻址从站寻址Modbus 地址与 S7-200 地址对应关系如表4-7所示。000001000001Q0.0Q0.0000002000002Q0.1Q0.1000003000003Q0.2Q0.2000127000127Q15.6Q15.6000128000128Q15.7Q15.7010001010001I0.0I0.0010002010002I0.1I0.1010003010003I0.2I0.2010127010127I15.6I15.6010128010128I15.7I15.7030001030001AIW0AIW0030002030002AIW2AIW2030003030003AIW4AIW4030032030032AIW62AIW62040001040001HoldStartHoldStart040002040002HoldStart+2HoldStart+2040003040003HoldStart+4HoldStart+404xxxx04xxxxHoldStart+2xHoldStart+2x(xxxx-1)Modbus 通信协议有 ASCII 和 RTU(远程传输单元)两种报文传输模式。(1)ASCII模式 ASCII模式采用LRC(纵向冗余校验)方式进行校验,其报文格式如表4-8所示。表表4-8 ASCII模式的报文格式模式的报文格式(2)RTU模式模式RTU模式的报文格式如表4-9所示。地址功能码:Modbus功能代码,1个字节;Modbus协议支持的功能码共16条(116),其中西门子Modbus RTU协议库支持最常用的8条,如表4-10所示;信息数据CRC:循环冗余校验,两个字节。功能码功能码描述描述1 1读取单个读取单个/多个线圈的实际输出状态。功能多个线圈的实际输出状态。功能1返回任意数量输出点的接通返回任意数量输出点的接通/断开状态(断开状态(Q)。)。2 2读取单个读取单个/多个线圈的实际输入状态。功能多个线圈的实际输入状态。功能2返回任意数量的输入点的接返回任意数量的输入点的接通通/断开状态(断开状态(I)。)。3 3多个保持寄存器。功能多个保持寄存器。功能3返回返回V存储器的内容。保持寄存器在存储器的内容。保持寄存器在Modbus下下是字类型,在一个请求中最多可读是字类型,在一个请求中最多可读120个字。个字。4 4读单个读单个/多个输入寄存器,返回模拟输入值。多个输入寄存器,返回模拟输入值。5 5写单个线圈(实际输出)。功能写单个线圈(实际输出)。功能5将实际输出点设置为指定值。该输出将实际输出点设置为指定值。该输出点不是被强制,用户程序可以重写由点不是被强制,用户程序可以重写由Modbus的请求而写入的值。的请求而写入的值。6 6写单个保持寄存器。功能写单个保持寄存器。功能6写一个单个保持寄存器的值到写一个单个保持寄存器的值到S7-200的的V存存储区。储区。1515写多个线圈(实际输出)。功能写多个线圈(实际输出)。功能15写多个实际输出值到写多个实际输出值到S7-200的的Q映像映像区。起始输出点必须是一个字节的开始(如区。起始输出点必须是一个字节的开始(如Q0.0或或Q2.0),并且要写),并且要写得输出的数量是得输出的数量是8的倍数。这是的倍数。这是Modbus从站协议指令的限定。这些点从站协议指令的限定。这些点不是被强制,用户程序可以重写由不是被强制,用户程序可以重写由Modbus的请求而写入的值。的请求而写入的值。1616写多个保持寄存器。功能写多个保持寄存器。功能16写多个保持寄存器到写多个保持寄存器到S7-200的的V区。在一个区。在一个请求中最多可写请求中最多可写120字。字。表表4-10 西门子西门子Modbus RTU协议库支持最常用的协议库支持最常用的8条功能码条功能码表4-9 RTU模式的报文格式RTU模式下,报文中的每个8位字节被转化为两个16进制字符,然后以字节为单位进行传输,并采用CRC(循环冗余校验)方式进行校验。目前支持 Modbus 通信的DCS系统和过程仪表大都采用基于串行接口的Modbus RTU模式,西门子提供了针对西门子PLC Modbus RTU通信的协议库。如果要在西门子PLC上实现Modbus ASCII模式通信,可根据相关协议规定利用自由口通信模式自主编程实现。4.3.2 Modbus通讯协议指令通讯协议指令西门子专门为西门子专门为 Modbus RTU 通信开发了指令库,极大地简化通信开发了指令库,极大地简化了了Modbus RTU 通信的开发,以便于快速实现相关应用。通信的开发,以便于快速实现相关应用。要使用要使用 Modbus 指令库必须注意以下四点:指令库必须注意以下四点:(1)使用)使用 Modbus 指令库前,需要将其安装到指令库前,需要将其安装到 Step7-Micro/Win中,中,STEP 7-Micro/WIN 必须为必须为 V3.2 或以上版本。或以上版本。(2)S7-200 CPU 必须是固化程序修订版必须是固化程序修订版2.00或最好支持或最好支持 Modbus 主设备协议库主设备协议库(CPU MLFB 21x-2xx23-0XB0)。(3)由于目前已经推出了针对端口)由于目前已经推出了针对端口0和端口和端口1的的 Modbus RTU 主主站指令库站指令库 Modbus Master Port0 和和 Modbus Master Port1、以及针对端口以及针对端口0的的 Modbus RTU 从站指令库,故可利用指令库从站指令库,故可利用指令库实现端口实现端口0的的Modbus RTU 主主/从站通信。从站通信。(4)一旦)一旦 CPU 端口被用于端口被用于 Modbus RTU 主主/从站协议通信时,从站协议通信时,该端口就无法用于任何其它用途,包括与该端口就无法用于任何其它用途,包括与 STEP 7-Micro/WIN 通讯。通讯。1Modbus 主站协议指令主站协议指令西门子Modbus主站协议库包括两条主站协议指令:MBUS_CTRL指令和MBUS_MSG 指令。MBUS_CTRL 指令用于初始化主站通信,MBUS_MSG 指令(或用于端口1的MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。1)MBUS_CTRL 指令指令 MBUS_CTRL指令如图4-17所示。图4-17 MBUS_CTRL指令块2)MBUS_MSG 指令指令MBUS_MSG 指令(或用于端口1的 MBUS_MSG_P1)用于启动对Modbus从站的请求并处理应答。MBUS_MSG 指令如图4-18所示图图4-18 MBUS_MSG 指令指令Count:“计数”参数;“计数”参数指定在该请求中读取或写入的数据元素的数目。根据Modbus协议,“计数”参数与 Modbus 地址存在表4-11对应关系。地址地址计数计数0 xxxx0 xxxx“计数计数”是要读取或写入的位数是要读取或写入的位数1xxxx1xxxx“计数计数”是要读取的位数是要读取的位数3xxxx3xxxx“计数计数”是要读取的输入寄存器的字数是要读取的输入寄存器的字数4xxxx4xxxx“计数计数”是要读取或写入的保持寄存器是要读取或写入的保持寄存器的字数的字数表表4-11 “计数计数”参数与参数与 Modbus 地址的对应关系地址的对应关系MBUS_MSMBUS_MSG G错误代错误代码码说明说明0 0无错误无错误1 1应答时奇偶校验错误:仅当使用偶校验或奇校验时才发生。传输被干扰,可能会收到不正确的数据。该错应答时奇偶校验错误:仅当使用偶校验或奇校验时才发生。传输被干扰,可能会收到不正确的数据。该错误通常是由电气故障(例如错误接线或影响通讯的电噪声)引起的。误通常是由电气故障(例如错误接线或影响通讯的电噪声)引起的。2 2保留位保留位3 3接收超时:在接收超时:在“超时超时”时间内,没有来自从站的应答。可能有以下一些原因:与从站的电气连接有问题、时间内,没有来自从站的应答。可能有以下一些原因:与从站的电气连接有问题、主设备和从站设置为不同的波特率主设备和从站设置为不同的波特率/奇偶校验设置以及错误的从站地址奇偶校验设置以及错误的从站地址4 4请求参数出错:一个或多个输入参数(从站、读写、地址或计数)被设置为非法值。检查输入参数的允许请求参数出错:一个或多个输入参数(从站、读写、地址或计数)被设置为非法值。检查输入参数的允许值。值。5 5ModbusModbus主设备未启用:在调用主设备未启用:在调用MBUS_MSG前,每次扫描时都调用前,每次扫描时都调用MBUS_MSG。6 6ModbusModbus忙于处理另一个请求:一次只能激活一条忙于处理另一个请求:一次只能激活一条MBUS_MSG指令。指令。7 7应答时出错:收到的应答与请求不相关。这表示从站中出现了某些错误或者错误从站应答了请求。应答时出错:收到的应答与请求不相关。这表示从站中出现了某些错误或者错误从站应答了请求。8 8应答时应答时CRC错误:传输被干扰,可能会收到不正确的数据。该错误通常是由电气故障(例如错误接线或影错误:传输被干扰,可能会收到不正确的数据。该错误通常是由电气故障(例如错误接线或影响通讯的电噪声)引起的。响通讯的电噪声)引起的。101101从站不支持在该地址处所请求的功能。从站不支持在该地址处所请求的功能。102102从站不支持数据地址:从站不支持数据地址:“地址地址”加上加上“计数计数”所要求的地址范围超出了从站所允许的地址范围。所要求的地址范围超出了从站所允许的地址范围。103103从站不支持数据类型:该从站不支持数据类型:该“地址地址”类型不被从站支持。类型不被从站支持。104104从站故障。从站故障。105105从站已接收消息但应答延迟:这是从站已接收消息但应答延迟:这是MBUS_MSG的错误。用户程序应在稍后重新发送请求。的错误。用户程序应在稍后重新发送请求。106106从站忙,因此拒绝消息:可以在此尝试相同的请求,以获得应答。从站忙,因此拒绝消息:可以在此尝试相同的请求,以获得应答。107107从站因未知原因拒绝消息。从站因未知原因拒绝消息。108108从站存储器奇偶校验错误:从站中有错误。从站存储器奇偶校验错误:从站中有错误。表表4-12 MBUS_MSG指令错误代码含义指令错误代码含义2Modbus 从站协议指令从站协议指令西门子 Modbus 从站协议库包括两条从站指令:MBUS_INIT 指令和MBUS_SLAVE 指令。1)MBUS_INIT 指令MBUS_INIT 指令用于启用和初始化或禁止 Modbus 从站通讯。在使用MBUS_SLAVE 指令之前,必须正确执行 MBUS_INIT 指令。指令完成后立即设定“完成”位,才能继续执行下一条指令。MBUS_INIT指令如图4-19所示图4-19 MBUS_INIT指令错误代码错误代码说明说明0 0无错误无错误1 1内存范围错误内存范围错误2 2非法波特率或奇偶校验非法波特率或奇偶校验3 3非法从站地址非法从站地址4 4非法非法Modbus参数值参数值5 5保持寄存器与保持寄存器与Modbus从站符号重叠从站符号重叠6 6收到奇偶校验错误收到奇偶校验错误7 7收到收到CRC错误错误8 8非法功能请求非法功能请求/功能不受支持功能不受支持9 9请求中的非法内存地址请求中的非法内存地址1010从站功能未启用从站功能未启用表表4-13 MBUS_INIT指令错误代码的含义指令错误代码的含义2)MBUS_SLAVE 指令指令MBUS_SLAVE 指令被用于为Modbus 主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答 Modbus 请求。MBUS_SLAVE 指令无输入参数,在每次扫描且 EN 输入开启时执行。错误代码错误代码说明说明0 0无错误无错误1 1内存范围错误内存范围错误2 2非法波特率或奇偶校验非法波特率或奇偶校验3 3非法从站地址非法从站地址4 4非法非法Modbus参数值参数值5 5保持寄存器与保持寄存器与Modbus从站符号重叠从站符号重叠6 6收到奇偶校验错误收到奇偶校验错误7 7收到收到CRC错误错误8 8非法功能请求非法功能请求/功能不受支持功能不受支持9 9请求中的非法内存地址请求中的非法内存地址1010从站功能未启用从站功能未启用图图4-20 MBUS_SLAVE指令指令表表4-14 MBUS_SLAVE 指令错误代码的含义指令错误代码的含义返回08项目ppt4.3.3 编程实例编程实例两台S7-200 CPU224XP进行通信。利用指令库编程前首先应为其分配存储区,否则 Step7-Micro/Win 编译时会报错。执行 Step7 Micro/Win 菜单命令“文件”“库存储区”,打开“库存储区分配”对话框,输入库存储区的起始地址,注意避免该地址和程序中已经采用或准备采用的其它地址重合,点击“建议地址”按钮,系统将自动计算存储区的地址范围。(1)从站编程)从站编程根据要求,从站要响应主站报文,故只需编写主程序,如图4-21所示。图4-21 从站主程序(2)主站编程)主站编程Modbus主站也只需编写主程序,如图4-22所示。运行测试即可。图图4-22 主站主程序主站主程序4.4 MODEM通信通信 通过EM241扩展模块可以将S7-200连接到模拟电话线上,实现与远程设备的通讯。这里,我们给出一个例子,即通过小型交换机电话网实现对PLC的编程诊断及两台PLC之间的数据交换。4.4.1 配置主叫猫和被叫猫配置主叫猫和被叫猫启动STEP7 Micro/Win软件,选择项目树中的“向导EM241调制解调器”进入EM241配置向导。单击图4-23所示的“电话号码”标签,设置远程设备电话号码,点击“新电话号码”按钮进入电话号码属性设置窗口,设置电话号码为3,并将其添加到右边的窗口,如图4-24所示。图4-23 配置数据传输图图4-24 远程设备电话号码设置对话框远程设备电话号码设置对话框图图4-25 回拨配置窗口回拨配置窗口4.4.2 编程编程输入输入/输出输出数据数据类型类型注注 释释ENENBOOLBOOLENEN位必须开启,才能启用发至模块的命令,位必须开启,才能启用发至模块的命令,并且并且EN位必须保持开启,直至位必须保持开启,直至“完成完成”位位被设置,表示程序完成。当被设置,表示程序完成。当START(开始)(开始)输入开启且模块目前不繁忙时,每次扫描输入开启且模块目前不繁忙时,每次扫描均会向调制解调器模块发送一则均会向调制解调器模块发送一则XFR命令命令STARSTART TBOOLBOOLSTARTSTART(开始)输入可以通过一个边缘检测(开始)输入可以通过一个边缘检测元素以脉冲方式开启,该程序仅允许发送元素以脉冲方式开启,该程序仅允许发送一则命令一则命令PhonPhone eBYTEBYTE远程远程EM241模块的电话号码,使用在向导模块的电话号码,使用在向导中配置的符号名中配置的符号名DataDataBYTEBYTE 数据数据指一个已经定义的数据传送,使用指一个已经定义的数据传送,使用在向导中定义的符号名在向导中定义的符号名DoneDoneBOOLBOOL 完成完成是当调制解调器模块完成数据传送是当调制解调器模块完成数据传送时开启的位时开启的位表表4-15 MODx_XFR 指令含义指令含义主叫“猫”对应的PLC中的主程序及注释如图4-26所示。被叫“猫”对应的PLC中的主程序及注释如图4-27所示。通过前面的设置,现在编程计算机和两台PLC共处于一个小型的电话网络中,注意要实现远程的编程诊断必须保证两台PLC处于“STOP”运行模式。图4-26 主叫“猫”对应的主程序图4-26 主叫“猫”对应的主程序4.4.3 远程诊断远程诊断通过Modem模块可以实现S7-200的远程编程与诊断图图4-28 “选择一个远程站连接选择一个远程站连接”对话框对话框4.5 USS通信通信 USS 通信总是由主站发起,USS 主站不断循环轮询各个从站,从站根据收到的指令,决定是否以及如何响应。从站永远不会主动发送数据。从站在以下条件满足时应答:(1)接收到的主站报文没有错误。(2)本从站在接收到主站报文中被寻址。USS 协议的特点为:(1)支持多点通信(因而可以应用在 RS 485 等网络上)。(2)采用单主站的“主从”访问机制。(3)一个网络上最多可以有 32 个节点(最多 31 个从站)。(4)简单可靠的报文格式,使数据传输灵活高效。(5)容易实现,成本较低。4.5.1 USS通信报文格式通信报文格式(1)字符帧格式:USS的字符传输格式符合UART规范,即使用串行异步传输方式。USS在串行数据总线上的字符传输帧为11位长度,如表10-16所示。连续的字符帧组成USS报文。在一条报文中,字符帧之间的间隔延时要小于两个字符帧的传输时间(当然这个时间取决于传输速率)。S7-200 CPU的自由口通信模式正好能够支持上述字符帧格式。表表4-16 字符帧格式字符帧格式(2)报文帧格式:协议的报文简洁可靠,高效灵活。报文由一连串的字符组成,协议中定义了它们的特定功能,如表4-17所示。在 ADR 和 BCC 之间的数据字节,称为 USS 的净数据。主站和从站交换的数据都包括在每条报文的净数据区域内。净数据区由 PKW 区和 PZD 区组成,如表4-18所示。4.5.2 USS指令指令 STEP 7-Micro/WIN USS 指令库提供14个子程序、3个中断例行程序和8条指令,极大地简化了 USS 通信的开发和实现。使用USS 指令库必须满足以下需求:(1)将端口0指定用于USS通讯。(2)在使用USS协议通讯的程序开发过程中,应该使用带两个通讯端口的S7-200 CPU(3)USS指令影响与端口0上自由接口通讯相关的所有SM位置。(4)USS指令的变量要求一个400个字节V内存块。(5)某些USS指令也要求有一个16个字节的通讯缓冲区。1USS_INIT 指令指令使用 USS 库指令前必须使用 USS_INIT 指令初始化 USS 通信参数,如图4-29所示。图4-29 初始化 USS 通信指令表4-19 Active 参数设置2USS_CTRL 指令指令USS_CTRL 指令用于对单个驱动装置进行运行控制,利用了USS协议中的 PZD 数据传输,控制和反馈信号更新较快,如图4-30所示。图4-30 USS_CTRL 指令块3USS 读读/写参数指令写参数指令USS 指令库中共有6种参数读写功能块,分别用于读写驱动装置中不同规格的参数,如表4-20所示。USS 参数读写指令采用与 USS_CTRL 功能块不同的数据传输方式。表4-20 USS 读/写功能块(1)读参数指令)读参数指令图4-31所示的程序段读取实际的电动机电流值(参数r0068)。由于此参数是一个实数,因此选用实型参数读功能块。参数读写指令必须与参数的类型配合。图4-31 读参数指令(2)写参数指令)写参数指令写参数指令的用法与读参数指令类似,与读参数指令的区别是参数是功能块的输入。(3)读写多个参数)读写多个参数在任一时刻 USS 主站内只能有一个参数读写功能块有效,否则会出错。因此如果需要读写多个参数(来自一个或多个驱动装置),必须在编程时进行读写指令之间的轮替处理。4.5.3 MM 440 变频器的参数设置变频器的参数设置以下只涉及与 S7-200 控制器连接相关的参数。MM 440 的参数分为几个访问级别,以便于过滤不需要查看的部分。(1)控制源参数设置)控制源参数设置控制源由参数 P0700 设置,如表4-21所示:表表4-21 控制源参数设置控制源参数设置(2)设定源控制参数设置)设定源控制参数设置设定值控制驱动装置的转速/频率等功能。设置源由参数 P1000 设置,如表4-22所示。表表4-22 设定源控制参数设置设定源控制参数设置(3)USS通信控制的参数设置通信控制的参数设置控制源和设定源之间可以自由组合,根据工艺要求可以灵活选用。我们以控制源和设定源都来自 COM Link 上的USS通信为例,简介USS通信的参数设置。主要参数有:P0700P1000P2009P2010P2011P2012 P2013P2014P09714.6 S7-200 PLC与与S7-300 PLC的的MPI通信通信 MPI(MultiPoint Interface)通信是当通信速率要求不高、通信数据量不大时,可以采用的一种简单经济的通信方式。STEP 7S7-22xPG/PC19.2 或 187.5 KbS7-400M7-400S7-300M7-300S7-115U/H,S5-135US5-155U/H,SIMATIC 505S5-95UOP图4-32 MPI网络结构配置通过通过MPI实现实现 PLC之间的通信有三种方式:之间的通信有三种方式:(1)全局数据包通信方式(2)组态连接通信方式(3)无组态连接通信方式 S7-300 与 S7-200 的 MPI 通信,只能采用单边编程方式,即 S7-200 作为服务器,无需任何编程。S7-200与与S7-300的的MPI通信的硬件包括:通信的硬件包括:(1)S7-300 PLC(2)S7-200 PLC(3)PC Adapter 或 CP5611。(4)Profibus 总线连接器及电缆。软件要求包括:软件要求包括:(1)STEP7 V5.2或以上。(2)Step7-Micro/Win SP4或以上。步骤如下:步骤如下:(1)在STEP7中新建 S7-300 项目,按硬件安装顺序和订货号依次插入机架、电源、CPU 进行硬件组态。(2)在 Step7-Micro/Win 的系统块中,设定 S7-200 的站地址为4,通信波特率187.5kbps。(3)将组态设置下载到S7-200 PLC中。(4)使用 Profibus 电缆连接 CPU314-2DP 的 X1 DP口 和CPU 224XP 的 DP0 口。为实现 S7-300 作为客户机,对服务器 S7-200 的数据读写,需要在STEP 7中编写两个网络如图4-33和图4-34所示。图图4-33 X_PUT网络网络图4-34所示网络2中,当M1.5为1时,S7-300会将S7-200的IB0的数值读取到S7-300的MB7中。将S7-300项目下载,运行测试即可。图4-34 X_GET 网络4.7 Profibus-DP通信通信Profibus符合国际标准IEC61158,是目前国际上通用的现场总线标准之一,并凭借其领先的技术特点、严格的认证规范、众多厂商的支持,逐渐发展为业界优良的现场级通信网络解决方案。Profibus已成为机械制造行业的标准。PROFIBUS协议采用ISO/OSI模型的第一层、第二层和第七层。从用户角度看,PROFIBUS提供了三种通信协议类型:DP、FMS和PA。另外,对于西门子PLC系统,PROFIBUS提供了两种更为优化的通信方式:S7通信和S5兼容通信。(1)PROFIBUS-S7(PG/OP通信)(2)PROFIBUS-FDL(与s5兼容通信)PROFIBUS是一个令牌网络结构,采用主从协议,一个网络中有若干个被动节点(从站),而它的逻辑令牌只含有一个主动节点(主站),这样的网络为纯主一从系统。Profibus-DP 网络配置示意图如图10-35所示。图图4-35 Profibus-DP 网络配置示意图网络配置示意图图图4-36 S7-200&S7-300 PROFIBUS-DP 通信网络通信网络S7-300与S7-200通过EM277进行PROFIBUS DP通讯,只需在STEP7中组态S7-300和EM 277,S7-200端只需对应存放将要进行通讯的数据,无需组态和编程。图图4-37 插入插入EM277从站从站4.8 工业以太网通信工业以太网通信4.8.1 工业以太网概述工业以太网概述1OSI参考模型 图4-38 OSI参考模型OSI参考模型的上三层通常称为应用层,用来处理用户接口、数据格式和应用程序的访问;下四层负责定义数据的物理传输介质和网络设备。如图4-39和4-40所示。图4-39 对等层通信结图4-39 对等层通信结2以太网技术以太网技术底层网络由物理层和MAC层(介质访问子层)构成。IEEE802.3 以“以太网”为技术原形,在MAC层上采用CSMA/CD(带冲突检测的载波侦听多路存取控制协议)的介质访问控制技术来处理通信中的冲突。在以太网模型的网络层和传输层上常采用TCP/IP协议组。其中IP(Internet Protocol)称为网际通信协议,对应网络层;TCP(Transmission Control Protocol)称为传输控制协议,对应传输层,保证数据被可靠地传送。3.工业以太网工业以太网将以太网高速传输技术引入到工业控制领域,使得企业内部互联网(如Intrunet),外部互联网(Extrunet)和国际互联网(Internet)提供的技术和广泛应用已经进入生产和过程自动化。工业以大网和传统以太网的比较如表4-23所示。功能功能工业以太网设备工业以太网设备普通
展开阅读全文