您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > S7-200-SMART-Modbus-TCP-服务器指令
Unrestricted操作指南11/2016S7-200SMARTModbusTCP服务器指令库S7-200SMART、ModbusTCPSiemensAGCopyrightyearAllrightsreserved目录1摘要......................................................................................................................32MODBUSTCP服务器功能..................................................................................43ModbusTCP服务器指令使用示例.....................................................................63.1MB_Server指令库安装.........................................................................63.2调用MB_Server指令库........................................................................63.3MB_Server指令库错误代码.................................................................8Unrestricted3CopyrightSiemensAGCopyrightyearAllrightsreserved1摘要本文用于介绍S7-200SMARTModbusTCP服务器指令的使用。伴随着STEP7-Micro/WINSMARTV2.2和S7-200SMARTCPU固件V2.2的发布,S7-200SMARTCPU开始支持TCP、ISO-on-TCP和UDP等开放式用户通信。STEP7-Micro/WINSMARTV2.2版本软件安装MB_Server指令库后,S7-200SMARTCPU还可以支持ModbusTCP服务器指令。每个MB_Server指令库只能创建一个MdobusTCP连接,如果一个S7-200SMART需要连接多个ModbusTCP客户端,则需要购买多个名称不同的MB_Server指令库(例如MB_Server_0,MB_Server_1,MB_Server_2)。Unrestricted4CopyrightSiemensAGCopyrightyearAllrightsreserved2MODBUSTCP服务器功能Modbus设备间的数据交换是通过功能码来实现的。S7-200SMARTCPU调用MB_Server指令库作为MODBUSTCP服务器时支持功能码见表1.所示。表1.MB_Server指令库支持的Modbus功能码Modbus地址读写功能码备注00001–0XXXX读1读取单个/多个开关量输出线圈状态00001–0XXXX写5写单个开关量输出线圈写15写多个开关量输出线圈10001–1XXXX读2读取单个/多个开关量输入触点状态10001–1XXXX写-不支持30001–3XXXX读4读取单个/多个模拟量输入通道数据30001–3XXXX写-不支持40001–4XXXX读3读取单个/多个保存寄存器数据40001–4XXXX写6写单个保持寄存器数据写16写多个保持寄存器数据注意:当MODBUSTCP客户端使用功能码15把多个离散量输出点的值写到S7-200SMARTCPU的输出映像寄存器(Q区)时,输出点的地址必须以字节边界起始(如Q0.0或Q2.0),并且输出点的数目必须是8的整数倍。S7-200SMARTCPU作为ModbusTCP服务器时支持以下Modbus地址(与CPU地址的映射关系见表2.所示):00001至00256是映射到Q0.0-Q31.7的开关量输出线圈。10001至10256是映射到I0.0-I31.7的开关量输入触点。30001至30056是映射到AIW0-AIW110的模拟量输入通道(紧凑型CPU除外)。40001至49999和400001至465536是映射到V存储器的保持寄存器。表2.Modbus地址与S7-200SMARTCPU地址映射关系Modbus地址S7-200SMARTCPU地址00001Q0.000002Q0.1……00255Q31.600256Q31.710001I0.010002I0.1……Unrestricted5CopyrightSiemensAGCopyrightyearAllrightsreserved10255I31.610256I31.730009AIW16130010AIW18……30055AIW10830056AIW11040001HoldStart240002HoldStart+2……4XXXXHoldStart+2(XXXX-1)注意:AIW161:紧凑型CPU不支持模拟量输入;AIW16为第一个扩展模块EM0的起始地址。HoldStart2:MB_Server指令库中的MBS_Connect指令的HoldStart参数用于定义V存储区中保持寄存器的起始地址。Unrestricted6CopyrightSiemensAGCopyrightyearAllrightsreserved3ModbusTCP服务器指令使用示例3.1MB_Server指令库安装1)打开STEP7-Micro/WINSMARTV2.2版本软件,鼠标右键项目树的“库”节点,并从快捷菜单中选择“打开库文件夹”,如图1.所示。图1.打开库文件夹2)将MB_Server指令库添加到打开的STEP7-Micro/WINSMART库文件夹中,如图2.所示。图2.添加MB_Server指令库备注:STEP7-Micro/WINSMART库文件夹一般存储路径为C:\Users\Public\Documents\Siemens\STEP7-MicroWINSMART\Lib3)关闭STEP7-Micro/WINSMART库文件夹,然后鼠标右键项目树的“库”节点,并从快捷菜单中选择“刷新库”。刷新后,您可以看见“MB_Server_0”指令库已经被添加到项目树的库节点下。3.2调用MB_Server指令库MB_Server指令库包含MBS_Connect和MBS_Slave等2个指令。MBS_Connect指令用于建立或断开ModbusTCP连接;MBS_Slave指令用于处理来自ModbusTCP客户端的请求,并且该指令必须在每次扫描时执行,以便检查和响应Modbus请求。每个MB_Server指令库只能创建一个MdobusTCP连接,如果一个S7-200SMART需要连接多个ModbusTCP客户端,则需要购买多个名称不同的MB_Server指令库(例如MB_Server_0,MB_Server_1,MB_Server_2)。1)在“MAIN”主程序中调用MBS_Connect和MBS_Slave指令,如图3.所示。Unrestricted7CopyrightSiemensAGCopyrightyearAllrightsreserved图3.主程序中调用MB_Server指令库MBS_Connect指令各个参数定义如下:EN使能:必须保证每一扫描周期都被使能。Connect:启动TCP连接建立操作。Disconnect:断开TCP连接操作。ConnID:TCP连接标识。注意:ModbusTCP属于TCP通信,也是开放式用户通信中的一种,所以ConnID参数不能与其他TCP、ISO-on-TCP、UDP通信相同。IPaddr1~IPaddr4:ModbusTCP客户端的IP地址,IPaddr1是IP地址的最高有效字节,IPaddr4是IP地址的最低有效字节。如果不指定伙伴IP,则可以设置为0.0.0.0。LocPort:本地设备上端口号MaxHold:用于设置Modbus地址4xxxx或4yyyyy可访问的V存储器中的字保持寄存器数。Unrestricted8CopyrightSiemensAGCopyrightyearAllrightsreservedHoldStart:间接地址指针,指向CPU中V存储器中保持寄存器的起始地址。本例中VW1000即对于Modbus地址40001。ConnectDone:ModbusTCP连接已经成功建立。Busy:连接操作正在进行时。Error:建立或断开连接时,发生错误。Status:如果指令置位“Error”输出,Status输出会显示错误代码。MB_Server指令库错误代码见3.3章节。MBS_Slave指令各个参数定义如下:EN使能:必须保证每一扫描周期都被使能。Done:当MB_Server指令响应Modbus请求时,Done完成位在当前扫描周期被设置为1;如果未处理任何请求,Done完成位为0。Error:错误代码,只有在Done位为1时错误代码有效。MB_Server指令库错误代码见3.3章节。2)为MB_Server指令库分配库存储器地址。MB_Server指令库需要占用300个字节V存储区用于库存储器地址分配。该库存储器分配地址不能与MBS_Connect指令参数HoadStart指向的V存储器地址重叠,也不能与其它程序使用的地址有重叠,库存储器地址分配过程见图4.所示。图4.为MB_Server指令库分配库存储区3.3MB_Server指令库错误代码MB_Server错误代码描述0无错误1~31开放式用户通信库指令错误代码,请参考STEP7-Micro/WINSMART在线帮助50TCP连接未成功建立Unrestricted9CopyrightSiemensAGCopyrightyearAllrightsreserved51HoldStart存储器范围错误52保持寄存器地址与库存储区地址重叠53TCP接收数据长度错误54ModbusTCP报文长度校验错误55非法的ModbusTCP功能码56请求的存储区地址非法
本文标题:S7-200-SMART-Modbus-TCP-服务器指令
链接地址:https://www.777doc.com/doc-4667565 .html