GE 9030系列modbusTCP通讯手册.docx

上传人:b****6 文档编号:5284056 上传时间:2022-12-14 格式:DOCX 页数:27 大小:1.49MB
下载 相关 举报
GE 9030系列modbusTCP通讯手册.docx_第1页
第1页 / 共27页
GE 9030系列modbusTCP通讯手册.docx_第2页
第2页 / 共27页
GE 9030系列modbusTCP通讯手册.docx_第3页
第3页 / 共27页
GE 9030系列modbusTCP通讯手册.docx_第4页
第4页 / 共27页
GE 9030系列modbusTCP通讯手册.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

GE 9030系列modbusTCP通讯手册.docx

《GE 9030系列modbusTCP通讯手册.docx》由会员分享,可在线阅读,更多相关《GE 9030系列modbusTCP通讯手册.docx(27页珍藏版)》请在冰豆网上搜索。

GE 9030系列modbusTCP通讯手册.docx

GE9030系列modbusTCP通讯手册

通信请求的结构

通信请求由以下要素组成:

●ƒCOMMREQ功能块(梯形图指令)

●ƒCOMMREQ命令块

●ƒ通道命令

●ƒ状态数据(COMMREQ状态字、LAN接口状态和通道状态位)

●ƒ控制COMMREQ功能块执行的逻辑程序

下图说明了这些要素之间的关系

COMMREQ功能块

COMMREQ功能块是触发执行频道命令。

在COMMREQ功能块中,指定

以太网接口、任务值和内存中包含命令块。

COMMREQ功能块上还有一个故障输出,指示某些编程错误。

COMMREQ命令块

COMMREQ命令块是一个包含有关通道信息的结构要执行的命令。

命令块由两部分组成:

公共区域-包括COMMREQ状态字(CRS字)的地址。

数据块区域-描述要执行的通道命令。

当COMMREQ功能启动时,命令块被传输到以太网操作界面。

Modbus/TCP通道命令

通道命令是一组用于与服务器通信的客户端PLC命令。

一个90-30系列以太网接口最多可以建立16个通道(编号1-16)。

这个通道编号在通道命令的命令块中指定。

频道可以使用通道状态位监视

状态数据

客户机PLC逻辑程序有几种状态可用。

LAN接口状态位(LIS位):

LIS位包括80位状态区域的位1–16。

这个此80位状态区域的位置是使用“状态”中的配置软件指定的地址”字段。

LIS位包含有关局域网(LAN)状态的信息以及以太网接口本身。

信道状态位:

信道状态位包括80位状态的位17–80(64位)区域。

当用于Modbus/TCP通道时,这些位由一个连接打开位和一个未使用的位组成位,为可建立的16个通道中的每一个保留以供将来使用。

的状态位未使用的通道始终设置为零。

COMMREQ状态字(CRS字):

16位CRS字将接收通信请求。

CRS字的位置分配给每个COMMREQ函数在COMMREQ命令块中。

COMMREQ功能块的FT输出:

此输出表示检测到PLCCPUCOMMREQ功能块和/或命令块出错,未传递命令块到以太网接口。

控制COMMREQ功能块执行的逻辑程序在开发控制COMMREQ函数执行的逻辑时必须小心。

COMMREQ功能必须由一次触发启动,以防止COMMREQ被触发每次CPU扫描都会重复执行,因为这会超出以太网接口和可能需要手动重启。

在启动COMMREQ之前检查某些状态位功能也很重要。

特别是,LAN接口OK位应用作联锁,以当以太网接口不工作时,防止执行COMMREQ功能。

在通道上启动COMMREQ后,不应再向直到一个非零CRS字从以太网返回到程序接口4.4-4Series90的TCP/IP以太网通信™PLC用户手册-2002年5月GFK-1541B

通信请求的操作

下面的图和文本解释了如何执行通信请求以完成

从远程Modbus/TCP设备读取的数据。

该图具体说明了成功的数据读取操作

1当有电源流到COMMREQ函数时,通信请求开始客户机PLC。

此时,命令块数据从PLCCPU发送到以太网接口。

2如果命令块为无效。

如果语法正确,则在数据传输后返回CRS字。

COMMREQ功能块和命令块

本节描述所有通信请求的通用编程结构:

COMMREQ功能块和命令块。

COMMREQ功能块

当逻辑程序将电源传递给COMMREQ功能块。

Enable:

用于激活COMMREQ功能块的控制逻辑。

有关以下信息,请参见第5节开发您的程序。

IN:

命令块的位置。

它可以是面向单词区域内的任何有效地址

Series90-30以太网接口的内存(%R,%AI或%AQ)。

SYSID:

一个十六进制字值,它提供机架(高字节)和插槽(低字节)位置

以太网接口。

注意,如果使用GEFanuc的VersaProPLC软件,则前导零

此十六进制字值不显示在屏幕上;例如,0004将显示为4。

示例:

任务:

对于90-30系列以太网接口,必须始终将其设置为零。

注意安全

输入错误的任务值可能会导致以太网接口失败。

FT输出:

如果PLCCPU(而不是以太网接口)检测到COMMREQ失败。

在这种情况下,不会为此更新其他状态指示器通信请求。

COMMREQ命令块

当COMMREQ功能启动时,命令块从PLCCPU发送到以太网接口。

命令块包含要由执行的命令的详细信息界面。

命令块的CPU内存中的地址由COMMREQ功能块。

此地址可以是面向单词区域中的任何有效地址内存(%R、%AI或%AQ,用于Series90-30EthernetInterface)。

命令块无效通常使用块移动编程指令设置。

命令块具有以下结构:

输入命令块信息时,请参阅以下定义:

(字1)数据块长度:

数据块的数据块部分的字长度命令块。

数据块部分从命令块的字7开始。

长度为从字7的数据块开始测量,而不是从命令块。

每个命令的正确值,以及每个命令的相关长度命令,将在下一节中指定。

(字2)WAIT/NOWAIT标志:

对于TCP/IP以太网,此标志必须设置为零通信。

COMMREQ状态字:

以太网接口更新CRS字以显示成功或失败命令失败。

命令字3和4指定CRS的PLC内存位置一句话。

(字3)COMMREQ状态字内存类型:

该字指定CRS字。

下表列出了内存类型:

(字4)COMMREQ状态字地址偏移量:

该字包含已选择内存类型。

状态字地址偏移量是一个基于零的数字。

例如,如果如果要将%R1作为CRS字的位置,则必须为偏移量指定零。

偏移量对于%R100,将是99位小数。

但是,请注意,这是频道命令。

(字5):

保留。

设置为零。

(字6):

保留。

设置为零。

(字7及以上)数据块:

数据块定义要执行的通道命令。

有关如何填写通道命令信息的信息,请参阅下一节

ModbusTCP通道命令

本节介绍通道命令的操作。

详细的描述和包括每个通道命令的示例。

有四个通道命令:

ƒ打开Modbus/TCP连接

ƒ关闭Modbus/TCP连接

ƒ从Modbus/TCP设备向PLC读取数据

ƒ将数据从PLC写入Modbus/TCP设备

打开Modbus/TCP客户端连接(3000)

Modbus/TCP以太网接口使用一个频道。

Modbus/TCP客户端通信最多可使用十六(16)个通道。

当前分配给SRTP通信的信道数可以限制特定应用程序中客户端连接可用的通道。

打开的Modbus/TCPCOMMREQ请求通信子系统将带远程Modbus/TCP设备的通道。

使用本文后面定义的COMMREQ可编程逻辑控制器可在远程设备之间传输数据。

一旦为Modbus/TCP客户端通信分配了一个通道,该通道将保持不变分配。

仅当:

应用程序关闭通道,由于PLC转换为停止,或基础TCP连接已终止。

远程Modbus/TCP设备的IP地址在打开的Modbus/TCP中指定使用标准点十进制格式的COMMREQ。

不接受其他IP地址格式。

COMMREQ状态字(CSR)表示打开Modbus/TCP的成功或失败客户端连接命令。

如果COMMREQ请求无效的通道号或已分配的通道COMMREQ失败,CSR设置为非零值以识别失败。

有关详细的CSR故障代码,请参阅本文档后面的“状态数据”部分。

命令3000示例

在IP地址10.0.0.1处建立到远程Modbus/TCP设备的通道(通道5)。

返回COMMREQ状态字到%R10。

12月(十六进制)

字100008(0008)通道命令数据块长度

字200000(0000)始终为0(无等待模式请求)

字300008(0008)CRS字的内存类型(%R)

字400009(0009)CRS字地址减1(%R10)*

保留字50万(0000)

字60000(0000)保留

Word703000(0BB8)打开Modbus/TCP客户端连接

字800005(0005)信道号(5)

字900001(0001)远程设备地址类型

字1000004(0004)远程设备地址长度

字1100010(0010)第1位字节的数值

字1200000(0000)第2个八位位数值

单词1300000(0000)第3个八位位数

单词1400001(0001)第4八位位数值

*单词4(CRSWordaddress)是命令块中唯一基于零的地址。

只有这个

值需要从预期地址中减去1。

(单词7)通道命令号:

Word7是打开Modbus/TCP的命令id

客户端连接命令。

如果与指定设备的TCP连接成功,则为分配。

(单词8)通道号:

字8指定要为Modbus/TCP分配的信道号客户端连接。

通道1-16可用于客户端通信。

(单词9)地址类型:

Word9指定为远程设备指定的IP地址类型。

此单词中需要一

(1)个值。

(字10)IP地址长度:

字10指定IP地址的长度。

价值这个单词需要四(4)个。

(单词11)IP地址1八位:

字10指定IP地址的第一个八位集的值。

(单词12)IP地址2八位:

字11指定IP的第二个八位集的值地址。

(单词13)IP地址3八位:

字12指定IP的第三个八位集的值地址。

(单词14)IP地址4八位:

字13指定IP的第四个八位集的值地址。

关闭Modbus/TCP客户端连接(3001)

应用程序通过发出关闭命令来关闭Modbus/TCP客户端连接

Modbus/TCP客户端连接COMMREQ。

CloseCOMMREQ关闭底层TCP连接并为其他通信任务释放通道。

如果COMMREQ中的通道号标识非Modbus/TCP客户端连接或非活动通道,则返回错误响应。

命令3001示例

终止在通道5上建立的Modbus/TCP客户端连接。

返回COMMREQ状态字到%R10。

十进制(十六进制)

字100002(0002)信道命令数据块的长度

字200000(0000)始终为0(无等待模式请求)

字300008(0008)CRS字的存储器类型(%R)

字400009(0009)CRS字地址减1(%R10)*

字500000(0000)保留

字600000(0000)保留

Word703001(0BB9)关闭Modbus/TCP客户端连接

字800005(0005)频道号(5)

*字4(CRS字地址)是命令块中唯一基于零的地址。

只有这个

值要求从预期地址中减去1。

(字7)通道命令号:

字7请求关闭通道服务。

(字8)通道命令号:

字8表示以前用一个命令打开的通道

打开Modbus/TCP客户端连接请求。

未分配的通道会导致错误

回应。

从Modbus/TCP设备(3003)读取数据

从Modbus/TCP设备COMMREQ读取的数据请求从Modbus/TCP设备到PLC。

读取数据COMMREQ必须引用激活的先前通过开放的Modbus/TCP客户端连接建立的Modbus/TCP通道通信请求。

寄存器、线圈或异常状态数据可从远程Modbus/TCP设备读取。

这个Modbus功能代码指定数据类型。

读取数据的有效功能代码

COMMREQ如下表所示:

地址和长度指定数据在远程设备中的位置以及要传输的数据单元。

长度是要传输的寄存器或线圈数。

Modbus协议功能代码7,读取异常状态不需要地址作为删除设备从内部位置检索异常状态。

当线圈数据小于16位的偶数倍时,线圈数据总是用零填充返回PLC。

从远程设备返回的数据存储在Read中指定的PLC数据区域中Modbus/TCP设备COMMREQ。

数据可以存储在任何PLC数据区中。

请参阅第页4-14可编程逻辑控制器的数据区和识别码列表。

注意第一项在每个数据区域中引用的是项1而不是项0。

COMMREQ状态字(CSR)表示读取数据的成功或失败通信请求。

如果COMMREQ请求的通道号无效或任何其他字段无效COMMREQ失败,CSR设置为非零值以识别失败。

参见章节详细的CSR故障代码请参阅本文档后面的“状态数据”

命令3003示例1

从远程Modbus/TCP设备的地址30200读取四个输入寄存器。

存储在位置%R20处注册。

将COMMREQ状态字返回到%R10。

十进制(十六进制)

字100008(0008)信道命令数据块的长度

字200000(0000)始终为0(无等待模式请求)

字300008(0008)CRS字的存储器类型(%R)

字400009(0009)CRS字地址减1(%R10)*

字500000(0000)保留

字600000(0000)保留

字703003(0BBB)从Modbus/TCP设备读取

字800006(0006)频道号(6)

Word900004(0004)Modbus功能代码

字1000008(0008)本地PLC内存类型

字1100020(0014)本地PLC起始地址

远程服务器中的字1200200(00C8)地址

字1300004(0004)远程设备中的寄存器数

字1400001(0001)单位标识符

*字4(CRS字地址)是命令块中唯一基于零的地址。

只有这个值要求从预期地址中减去1。

(字7)通道命令号:

字7将COMMREQ标识为从Modbus/TCP设备命令块。

(字8)信道号:

字8标识先前分配给的信道号与远程Modbus/TCP服务器通信。

(字9)Modbus功能码:

字9指定Modbus功能码4,读取输入寄存器。

(字10)本地PLC内存类型:

字10-11指定本地PLC中的位置,其中以太网接口将存储从远程设备接收到的数据字10的有效值

如下所示

(字11)本地PLC存储器地址:

字11确定本地PLC存储器中的起始地址用于存储远程设备数据的PLC。

输入的值是偏移量(1-基于)从PLC存储器开始,为字10中指定的存储器类型和模式。

根据指定的模式,此偏移量将以位、字节或字为单位。

有效范围值的大小取决于PLC的内存范围。

用户负责确保该区域足够大,可以包含请求的数据而不覆盖其他应用程序数据。

(字12)远程设备地址:

字12指定远程Modbus/TCP中的地址设备。

注:

功能代码决定Modbus地址区域3xxx或4xxx,字12为此区域内的地址(例如,在本例中输入200而不是30200)。

(字13)远程设备中的数字寄存器:

字13指定寄存器的数量(16位字)从远程设备读取。

(字14)单元标识符:

字14是Modbus/TCP单元标识符,是一种特殊的控制代码用于Modbus/TCP消息。

默认值为1。

对于大多数Modbus/TCP设备,此值为1除非以太网到串行网桥用于多点到ModbusRTU设备。

命令3003,示例2

从远程Modbus/TCP服务器的地址10005读取九(9)个输入离散值。

存储位置%T3处的寄存器(位模式)。

将COMMREQ状态字返回到%R10。

十进制(十六进制)

字100008(0008)信道命令数据块的长度(8–14字)

字200000(0000)始终为0(无等待模式请求)

字300008(0008)CRS字的存储器类型(%R)

字400009(0009)CRS字地址减1(%R10)*

字500000(0000)保留

字600000(0000)保留

字703003(0BBB)从Modbus/TCP设备读取

字800006(0006)频道号(6)

Word900002(0002)Modbus功能代码

字1000074(004A)本地PLC内存类型

字1100003(0003)本地PLC起始地址

字1200005(0005)地址在远程设备中

字1300009(0009)从远程设备读取的输入离散数

字1400001(0001)单位标识符

*字4(CRS字地址)是命令块中唯一基于零的地址。

只有这个值要求从预期地址中减去1。

(字7)通道命令号:

字7将COMMREQ标识为从Modbus/TCP设备命令块。

(字8)信道号:

字8标识先前分配给的信道号与远程Modbus/TCP服务器通信。

(字9)Modbus功能代码:

字9指定Modbus功能代码2,读取输入状态。

(字10)本地PLC内存类型:

字10-11指定本地PLC中的位置,其中以太网接口将存储从远程设备接收的数据。

单词10的有效值

见第4-14页。

(字11)本地PLC存储器地址:

字11确定本地PLC存储器中的起始地址用于存储远程设备数据的PLC。

输入的值是偏移量(1-基于)从PLC存储器开始,为字10中指定的存储器类型和模式。

根据指定的模式,此偏移量将以位、字节或字为单位。

有效范围值的大小取决于PLC的内存范围。

用户负责确保该区域足够大,可以包含请求的数据而不覆盖其他应用程序数据。

(字12)远程设备地址:

字12指定远程Modbus/TCP中的地址设备。

(字13)远程设备中的数字寄存器:

字13指定输入的数量从远程设备读取数据。

(字14)单位标识符:

默认为1。

此字段通常由以太网到串行网桥用于指定多点链路上Modbus从站的地址。

Modbus/TCP单元标识符是Modbus/TCP消息块中使用的特殊控制代码。

对于大多数Modbus/TCP,该值为1信息。

命令3003,示例3–读取异常状态

从远程Modbus/TCP服务器读取异常状态。

将ExceptionData存储在位置%Q4(位模式)。

将COMMREQ状态字返回到%R10。

十进制(十六进制)

字100008(0008)信道命令数据块的长度

字200000(0000)始终为0(无等待模式请求)

字300008(0008)CRS字的存储器类型(%R)

字400009(0009)CRS字地址减1(%R10)*

字500000(0000)保留

字600000(0000)保留

字703003(0BBB)从Modbus/TCP设备读取

字800006(0006)频道号(6)

Word900007(0007)Modbus功能代码

字1000072(0048)本地PLC存储器类型

字1100004(0004)本地PLC启动地址

字12000(0000)保留

字1300001(0001)数据大小

字1400001(0001)单位标识符

*字4(CRS字地址)是命令块中唯一基于零的地址。

只有这个值要求从预期地址中减去1。

(单词7)通道命令号:

单词7将COMMREQ标识为读取异常Modbus/TCP设备的状态。

(字8)信道号:

字8标识先前分配给的信道号

与远程Modbus/TCP服务器通信。

(Word9)Modbus功能代码:

Word9指定Modbus功能代码7,读取异常

状态。

(字10)本地PLC内存类型:

字10-11指定本地PLC中的位置,其中

以太网接口将存储从远程设备接收的数据。

单词10的有效值

见第4-14页。

(字11)本地PLC存储器地址:

字11确定本地PLC存储器中的起始地址

用于存储远程设备数据的PLC。

输入的值是偏移量(1-

基于)从PLC存储器开始,为字10中指定的存储器类型和模式。

根据指定的模式,此偏移量将以位、字节或字为单位。

有效范围

值的大小取决于PLC的内存范围。

用户负责确保该区域

足够大,可以包含请求的数据而不覆盖其他应用程序数据。

(单词12)保留:

单词12保留,必须设置为零。

(单词13)数据大小:

单词13是数据大小,必须设置为1。

(字14)单位标识符:

默认为1。

此字段通常由以太网到串行网桥用于

指定多点链路上Modbus从站的地址。

Modbus/TCP单元标识符是

Modbus/TCP消息块中使用的特殊控制代码。

对于大多数Modbus/TCP,该值为1

信息。

将数据写入Modbus/TCP设备(3004)

将数据写入Modbus/TCP设备COMMREQ请求从PLC到控制器的数据传输

Modbus/TCP服务器。

写入数据COMMREQ必须引用活动的Modbus/TCP通道

以前使用开放式Modbus/TCP客户端连接COMMREQ建立。

寄存器或线圈可写入远程Modbus/TCP设备。

Modbus功能代码

指定数据类型。

写入数据COMMREQ的有效功能代码在

下表:

地址偏移量和长度指定Modbus/TCP设备中的位置和地址的数量

要传输的数据单元。

地址偏移量是相对于基址的偏移量。

长度是

要传输的寄存器或线圈数。

PLC数据区是写入Modbus/TCP设备的数据源。

数据的来源

可以是任何PLC数据区(见第4-14页)。

功能代码5,强制单线圈,是Modbus/TCP支持的唯一线圈操作

客户。

此功能强制线圈打开或关闭。

要强制线圈关闭,使用值0作为

COMMREQ数据值。

为了强制线圈接通,值1用作COMMREQ数据

价值观。

COMMREQ状态字(CSR)表示写入数据的成功或失败

通信请求。

如果COMMREQ指定了无效的通道号或任何其他无效字段

COMMREQ失败,CSR设置为非零值以识别失败。

参见章节

详细的CSR故障代码请参阅本文档后面的“状态数据”

命令3004,示例1–设置单个寄存器

将一个寄存器从%AI10写入远程Modbus/TCP服务器的地址40200。

归还

COMMREQ状态字到%R10。

使用信道6,一个先前用Open打开的信道

Modbus/TCP客户端连接COMMREQ。

十进制(十六进制)

字100008(0008)信道命令数据块的长度

字200000(0000)始终为0(无等待模式请求)

字300008(0008)CRS字的存储器类型(%R)

字400009(0009)CRS字地址减1(%R10)*

字500000(0000)保留

字600000(0000)保留

Word703004(0BBC)写入Modbus/TCP设备

字800006(0006)频道号(6)

字900006(0006)Modbus功能代码–预设单寄存器

字1000010(000A)本地PLC内存类型

字1100010(000A)本地PLC起始地址

字1200200(00C8)远程设备中的地址

字1300001(0001)远程设备中的寄存器数

字1400001(0001)单位标识符

*字4(CRS字地址)是命令块中唯一基于零的地址。

只有这个

值要求从预期地址中减去1。

(字7)通道命令号:

字7将COMMREQ标识为写入数据

远程Modbus/TCP设备。

(字8)信道号:

字8标识先前分配给的信道号

与远程Modbus/TCP服务器通信。

(字9)Modbus功能码:

字9指定Modbus功能码6,预置单

注册。

(字10)本地PLC内存类型:

字10–11指定本地PLC中的位置

以太网接口将获取要写入远程PLC的数据。

的有效值

单词10列在第4-14页。

(字11)本地PLC起始地址:

字11确定本地PLC的起始地址

从中写入数据的PLC。

输入的值是从

字10中指定的存储器类型和模式的PLC存储器的开头。

此偏移将

可以是位、字节或字,具体取决于指定的模式。

值的有效范围取决于

在PLC的内存范围上。

(字12)远程设备地址:

字12指定远程设备中的目标寄存器

设备。

(字13)远程设备中寄存器的数量:

字13指定要存储的寄存器的数量

写入远程设备。

对于Modbus功能代码6,必须设置预设单寄存器

到1。

(字14)单位标识符:

默认为1。

此字段通常由以太网到串行网桥用于

指定多点链路上Modbus从站的地址。

Modbus/TCP单元标识符是

Modbus/TCP消息块中使用的特殊控制代码。

对于大多数Modbus/TCP,该值为1

信息。

命令3004,示例2–强制单线圈

将远程Modbu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1