ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:318.26KB ,
资源ID:3914266      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3914266.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(modbustcpclient事例1Word文件下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

modbustcpclient事例1Word文件下载.docx

1、IP_OCTET_1USINT1. Modbus TCP 服务器 IP 地址* 中的八位字节。IP_OCTET_22. Modbus TCP 服务器 IP 地址* 中的八位字节。IP_OCTET_33. Modbus TCP 服务器 IP 地址* 中的八位字节。IP_OCTET_44. Modbus TCP 服务器 IP 地址* 中的八位字节。IP_PORT服务器上使用 TCP/IP 协议与客户端建立连接和通信的 IP 端口号(默认值: 502).MB_MODE 选择请求模式(读取、写入或诊断)。MB_DATA_ADDR UDINT由“MB_CLIENT”指令所访问数据的起始地址。DATA_L

2、EN数据长度: 数据访问的位数或字数(请参见“MB_MODE 和 MB_DATA_ADDR 参数” - 数据长度)。MB_DATA_PTRInOutVARIANT指向 Modbus 数据寄存器的指针: 寄存器是用于缓存从 Modbus 服务器接收的数据或将发送到 Modbus 服务器的数据的缓冲区。 该指针必须引用具有标准访问权限的全局数据块。寻址到的位数必须除以 8。DONEOut只要最后一个作业成功完成,立即将输出参数 DONE 的位置位为“1”。BUSY 当前没有正在处理的“MB_CLIENT ”作业 MB_ CLIENT ”作业正在处理中ERROR 无错误 出错。 出错原因由参数 ST

3、ATUS 指示。STATUS WORD指令的错误代码。* Modbus TCP 服务器 32 位 IPv4 IP 地址 中的 8 位长度的部分。有关有效数据类型的更多信息,请参见“有效数据类型概述”。说明 “MB_CLIENT”调用过程中统一输入数据Modbus 客户端调用 Modbus 指令时,输入参数的状态将存储在内部,并在下一次调用时比较。 这种比较用于确定这一特定调用是否初始化当前请求。 如果使用一个通用背景数据块,那么可以执行多个“MB_CLIENT”调用。 在执行“MB_CLIENT”实例的过程中,不得更改输入参数的值。 如果在执行过程中更改了输入参数,那么将无法使用“MB_CLI

4、ENT”检查实例当前是否正在执行。多个客户端连接Modbus TCP 客户端可以支持多个 TCP 连接,连接的最大数目取决于所使用的 CPU。 一个 CPU 的总连接数,包括 Modbus TCP 客户端和服务器的连接数,不能超过所支持的最大连接数。 Modbus TCP 连接也可以由客户端和/或服务器连接共享。使用各客户端连接时,请记住以下规则:每个“MB_CLIENT”连接都必须使用唯一的背景数据块。对于每个“MB_CLIENT”连接,必须指定唯一的服务器 IP 地址。每个“MB_CLIENT”连接都需要一个唯一的连接 ID。该指令的各背景数据块都必须使用各自相应的连接 ID。 连接 ID

5、 与背景数据块组合成对,对每个连接,组合对都必须唯一。根据服务器组态,可能需要或不需要 IP 端口的唯一编号。该指令的静态变量下表列出了“MB_CLIENT”指令背景数据块的可编辑静态变量。变量起始值Blocked_Proc_TimeoutREAL3.0如果有一个被阻止的 Modbus 实例,则为复位静态变量 ACTIVE 前的等待时间(单位为秒)。 例如,如果输出了一个客户端请求,而且在该请求完全执行之前中止执行客户端功能,则可能发生这种情况。 最大等待时间为 55 秒。MB_Transaction_ID1Modbus TCP 协议的事务 ID。 只有在 Modbus TCP 服务器需要一个

6、不同值的情况下,才能更改起始值“1”。MB_Unit_IDBYTE255Modbus 协议的单元 ID。 该变量对应于 Modbus RTU 协议的从站地址。 只有在将 Modbus TCP 服务器用作一个网关,同时由 Modbus 服务器中应用程序进行控制时,才能更改此值。RCV_TIMEOUT2.0“MB_CLIENT”指令等待服务器响应的时间间隔(单位为秒)。Connected指示是否已建立与所指定客户端的连接: 1 = 已连接,0 = 未连接。二、REQ 和 DISCONNECT 参数如果当前未执行“MB_CLIENT”指令的实例,并且 DISCONNECT 参数的值为“0”,那么将在

7、 REQ = 1 时执行新作业。如果尚无连接,将在执行期间建立一个连接。如果在执行该活动作业之前再次执行“MB_CLIENT”指令的相同实例(DISCONNECT = 0 且 REQ = 1),那么不会在活动作业完成时执行该实例。 只有在活动作业完成时,才能启动新作业 (REQ = 1)。可以使用 DONE 参数监视执行状态。 如果顺序执行“MB_CLIENT”指令,那么可以使用该参数监视执行状态。三、MB_MODE 和 MB_DATA_ADDR 参数“MB_CLIENT”指令将使用 MB_MODE 参数,而不是函数代码。 MB_DATA_ADDR 参数用于指定待访问的数据的 Modbus 起

8、始地址。 MB_MODE 和 MB_DATA_ADDR 参数的组合定义了当前 Modbus 消息中所使用的函数代码。下表列出了 MB_MODE 参数、Modbus 功能和地址空间之间的关系。MB_MODEModbus 功能数据长度功能和数据类型MB_DATA_ADDR011 到 2000读取输出位:每个调用 1 到 2000 位1 到 999902读取输入位:10001 到 19999031 到 125读取保持寄存器:每个调用 1 到 125 WORD40001 到 4999904读取输入字:30001 到 3999905写入输出位:每个调用 1 位06写入保持寄存器:1 WORD 每个调用4

9、0001 到 49999 152 到 1968写入多个输出位:每个调用 2 到 1968 位162 到 123写入多个保持寄存器:每个调用 2 到 123 WORD2 1 到 1968写入一个或多个输出位:每个调用 1 到 1968 位216 1 到 123写入一个或多个保持寄存器:每个调用 1 到 123 WORD11读取服务器通信的状态字和事件计数器:状态字反映了处理的状态(0 - 未处理,0xFFFF - 正在处理)每次成功发送一条消息时,事件计数器都将递增。执行该功能时,将不计算“MB_CLIENT”指令的 MB_DATA_ADDR 和 MB_DATA_LEN 参数。-80 08 通过

10、错误代码 0x0000 检查服务器状态(返回循环测试 - 服务器发回请求):8108通过错误代码 0x000A 复位服务器的事件计数器:3 到 10、12 到 79、82 到 255预留四、MB_DATA_PTR 参数MB_DATA_PTR 参数是一个指向数据缓冲区的指针,该缓冲区用于存储从 Modbus 服务器读取或写入 Modbus 服务器的数据。 作为数据缓冲区,可以使用全局数据块或存储区域 (M)。对于存储区域 (M) 中的缓冲区,可通过以下方式使用 ANY 格式的指针: “P#位地址” “数据类型” “长度”(例如: P#M1000.0 WORD 500).MB_DATA_PTR 参

11、数使用一个通信缓冲区:对于“MB_CLIENT”指令的通信功能:读取和写入 Modbus 服务器地址 00001 到 09999 和 10001 到 19999 的 1 位数据。读取 Modbus 服务器地址 30001 到 39999 和 40001 到 49999 的 16 位 WORD 数据。写入 Modbus 服务器地址 40001 到 49999 的 16 位 WORD 数据。在从/向全局 DB 或 由 MB_DATA_PTR 参数指定的存储区 (M) 进行数据传输的过程中(长度:位或 WORD)。如果在 MB_DATA_PTR 参数中使用该缓冲区的一个数据块,那么需要为 DB 元素

12、指定数据类型。对于 Modbus 位地址,将使用 1 位的数据类型 BOOL对于 Modbus WORD 地址,将使用 16 位的数据类型,如 WORD、UINT、INT 或 REAL。对于 2 个 Modbus WORD 地址,将使用 32 位的数据类型(双字),如 DWORD、DINT 或 REAL。通过 MB_DATA_PTR,还可以访问复杂的 DB 元素,如:标准数组元素名称唯一的结构元素名称唯一且数据类型长度为 16 或 32 位的复杂结构。MB_DATA_PTR 参数的数据区可以在不同的全局数据块中(或在不同的存储区中)。 例如,可以根据读作业和写作业使用不同的数据块,或者为每个“

13、MB_CLIENT”站使用单独的数据块。参数 STATUS(常规状态信息)STATUS* (W#16#)0000指令已无错执行完毕。0001连接已建立。0003连接被终止。7000未激活任何调用 (REQ=0)。7001首次调用时,REQ=1: 启动处理;BUSY 的值为 1。7002中间调用(与 REQ 无关)。 处理已激活;7003正在终止连接。7004连接已建立且处于受监视状态。未激活任何作业处理。7005已发送数据。7006已接收数据。80BBACTIVE_EST 参数值无效(建立此类连接的标识符,请参见 T_CON_PARAM):只允许对服务器建立被动连接 (ACTIVE_EST =

14、 FALSE)。只允许对客户端建立主动连接 (ACTIVE_EST = TRUE)。8380接收的 Modbus 帧格式错误或接收到的字节过少。* 在程序编辑器中,错误代码可显示为整数或十六进制值。有关切换显示格式的更多信息,请参见“另请参见”。五、参数 STATUS参数 STATUS(协议错误)响应 Modbus 客户端的代码 (B#16#)8381不支持功能代码。8382数据长度错误。8383数据地址错误或访问 MB_DATA_PTR 地址以外的区域。8384数据值错误。8385不支持诊断错误代码(功能代码 08)。参数 STATUS(参数错误)除了下表列出的错误 还可能发生由通信指令(“

15、TCON”、“TDISCON”、“TSEND”和“TRCV”)引起的“MB_CLIENT”指令错误。80C8在指定的时间段中,服务器无响应。 请检查与 Modbus 服务器的连接。 只有在尝试了所组态的可重复尝试次数之后,才会报告该错误。如果“MB_CLIENT”指令在指定时间内没有收到最初传输事务 ID(MB_TRANSACTION_ID 变量)的应答,则输出该错误代码。8188参数 MB_MODE 的值无效。8189MB_DATA_ADDR 参数的数据地址无效。818AMB_DATA_LEN 参数中的数据长度无效。818B参数 MB_DATA_PTR 中的指针无效。 请检查 MB_DATA

16、_ADDR 和 MB_DATA_LEN 参数的值。818CMB_DATA_PTR 指针将引用一个已优化的数据块。 既可以使用一个具有标准访问权限的数据块,也可以使用一个存储区参数 BLOCKED_PROC_TIMEOUT 超时(请参见指令的静态变量)。 已超出 55 秒的限制。818D事务 ID(MB_TRANSACTION_ID 变量)与最初发送的 ID 不一致(请参见指令的静态变量)。8200该端口正在处理另一个 Modbus 请求。MB_CLIENT 具有相同连接参数的另一实例正在处理现有 Modbus 请求。接收到的已传输 Modbus 数据块格式不正确或接收到的字节过少。8386接收

17、到的功能代码与最初发送的代码不一致。8387指定的连接 ID 与之前请求的不同。 “MB_CLIENT”指令的各背景数据块,只能使用一个连接 ID。服务器收到的 Modbus TCP 协议 ID 不为“0”时,也会输出错误代码。8388Modbus 服务器发送的数据长度与所请求的不同。 只有使用 Modbus 功能 15 或 16 时才会发生这种错误。内部使用的通信指令的错误代码。对于“MB_CLIENT”指令,除了会发生表中列出的错误外,还会发生由该指令所使用的通信指令(“TCON”、“TDISCON”、“TSEND”和“TRCV”)所引起的错误。错误代码通过“MB_CLIENT”指令的背景

18、数据块来指定。 相应指令的错误代码会显示在 Static 部分中的 STATUS 下。错误代码的含义在相应通信指令文档中提供。 六、MB_CLIENT 示例 1: 通过 TCP 连接发送多个请求通过一个 TCP 连接,发送多个 Modbus 客户端请求。 为此,需使用相同的背景数据块、相同的连接 ID 和相同的端口号。每次只能激活一个客户端。 处理完一个客户端后,再继续处理下一个。 必须在程序中定义执行顺序。在下列样本程序中,还将复制 STATUS 输出参数的值。程序段 1: Modbus 功能 1 - 16 个读取输出位程序段 2: Modbus 功能 2 - 32 个读取输入位七、MB_C

19、LIENT 示例 2: 通过多个 TCP 连接发送多个请求通过不同的 TCP 连接,发送多个 Modbus 客户端请求。 为此,则需使用不同的背景数据块和不同的连接 ID。如果连接指向相同的 Modbus 服务器,则使用不同的端口号。 如果连接指向不同的 Modbus 服务器,则可以任意指定端口号。 Modbus 功能 4 - 读取输入(WORD) Modbus 功能 3 - 读取保持寄存器(WORD)八、MB_CLIENT 示例 3: 协调多个请求确保执行了所有的 Modbus 请求。 可以通过程序协调各请求。 在以下示例中,演示了如何使用该指令协调第一客户端和第二个客户端请求的输出参数。九、MB_SERVER 示例: 多个 TCP 连接可以使用多个 Modbus TCP 服务器连接。 为此,每个连接都必须单独调用“MB_SERVER”指令。每个连接都需要下列数据: 指令的一个独立背景数据块唯一的连接 ID单独的 IP 端口(在 S7-1200 上,每个 IP 端口只允许一个连接)为了优化性能,每个连接的每个程序循环中都应执行“MB_SERVER”指令。 带有相关 IP 端口连接 ID 和背景数据块的连接 #1

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2