用于与 PLC 通讯的字段
对于 .csv 文件中的每个字段,会在 PLC 上保留一个特定的内存区块。PLC 和插件都使用这些字段来写入和读取所需的数据。这些字段可在 PLC 的内存中分为两个区块。PLC 使用一个区块请求命令或定义执行参数。插件使用另一个区块写入视觉系统提供的信息,例如,视觉系统的一般信息或执行结果。PLC 可以读取和处理字段中提供的由插件写入的信息,反之亦然。每个字段都有预定义的名称。
一些字段是设置的固定部分,并且将始终提供,例如,包含视觉系统当前状态的字段。我们将这些类型的字段称为静态字段。相反,也存在一些动态字段(如结果值的字段),它们取决于插件的配置,并且只有在相应地设置了插件的各个参数时才会提供。在以下部分中,您可以找到属于协议中固定部分的静态字段和只有在相应地配置插件时才添加的动态字段的概述。
导出用于 PLC 的字段
该组字段可导出到 MERLIC RTE Setup 的“通讯”选项卡中。
- 在左侧选择所需的 MELSEC Communication 插件实例以显示该插件的配置。
- 如有必要,调整要导出的 .csv 文件的位置和文件名。相应的参数在参数类别 Global Label CSV Export 中提供。
- 单击 MERLIC RTE Setup 底部的“
启动插件”按钮将字段导出到指定的 .csv 文件中。
此 .csv 文件会在插件启动后(即单击启动按钮后)立即自动导出。它包含有关所有需要的字段、相应数据类型和分配的内存地址的信息。该文件可以独立于 PLC 创建。导出不需要连接到 PLC。但是,如果尚未建立连接,则会出现一条错误消息,表明插件无法启动。如果只想导出 .csv 文件,可以忽略此错误。
在 GX Works2 中执行 PLC 程序时,导出的文件用作通讯所需的字段和内存区块的输入。为此,您可以导入该文件,如下一部分中所述。
导入“Global Label”文件
将插件配置的选定字段导出到“Global Label”.csv 文件后,可将此文件导入 GX Works,并使用相应的字段来执行 PLC 程序。
我们文档中使用了 GX Works2 版本 1.612N。如果您使用 GX Works3 或不同版本的 GX Works2,则用户界面和参数名称可能与示例图像中所见有所不同。如需了解 GX Works 的一般信息、其功能以及如何与 GX Works 配合使用以对 MELSEC 系列 PLC 进行编程和监控,请浏览 Mitsubishi Electric 的网站。
在 GX Works2 中,您可以按照以下步骤导入此文件。
- 打开“Project”面板。
- 右键单击“Global Label”,然后选择“Read from CSV File...”菜单项。

静态字段
这种类型的字段始终可用于通讯。它们中的大多数都由插件写入,目的是提供有关视觉系统或当前执行的信息。PLC 仅写入几个静态字段。
由插件写入的静态字段
|
字段 |
数据类型 |
描述 |
|---|---|---|
|
gMV_VersionMajor |
WORD |
插件的主要版本号。 |
|
gMV_VersionMinor |
WORD |
插件的次要版本号。 |
|
gMV_Heartbeat |
WORD |
用于心跳模式的计数器。当插件运行时,值会不断更新。该值可用于检查连接是否仍处于活动状态,并处理意外的断连情况。 |
|
gMV_CurrentState |
INT |
MERLIC 的当前状态,例如,72 表示“SingleExecution”。 有关不同状态的值及其编码方式的更多信息,请参阅MERLIC 状态部分。 |
|
gMV_LastResultId |
DWORD |
最新结果的 ID。 |
|
gMV_NumberOfRecipes |
DINT |
可用配方的数量。 |
|
gMV_PreparedRecipeIds |
ARRAY [0..31] OF BOOL |
指示当前准备的配方。它包含一个数组,其中每个条目指示当前是否已准备对应于索引的配方。只有当定义的配方不超过 32 个时,此字段才有效。此外,使用 MERLIC 时只能准备一个配方。 |
|
gMV_RunningJobId |
DWORD |
当前运行的工作的 ID。 |
|
gMV_AcquisitionDoneCount |
DWORD |
为当前工作执行的图像采集次数。最初设置为 0,表示还没有采集到图像。对于每个新工作,此字段会重置。 |
|
gMV_AckCommandCode |
INT |
插件最后确认的请求命令的代码。 |
|
gMV_ErrorCode |
DINT |
数字错误代码。它提供有关错误性质、严重程度和受影响组件的信息。 有关如何返回错误的更多信息,请参阅错误处理主题。 |
|
gMV_ErrorCause |
INT |
导致错误的命令的代码。它具有与“gMV_ReqCommandCode”和“gMV_AckCommandCode”字段中给定的数值相同的数值。 有关如何返回错误的更多信息,请参阅错误处理主题。 |
|
gMV_DroppedResultCount |
DWORD |
使用结果模式“Dequeue from buffer”时丢弃的结果数量。最初设置为 0,每丢弃一个结果则递增。 如果 PLC 没有足够快地将结果移出队列,并且超出了结果缓冲区容量,则缓冲区中最旧的结果(即本应下一个移出队列的结果)将被丢弃。 |
|
gMV_ResultId |
DWORD |
当前显示的结果的 ID。 |
|
gMV_ResultRecipeId |
DINT |
产生所显示结果的配方的 ID。 |
|
gMV_ResultJobId |
DWORD |
产生所显示结果的工作的 ID。 |
|
gMV_ResultState |
INT |
所显示结果的状态:
|
由 PLC 写入的静态字段
|
字段 |
数据类型 |
描述 |
|---|---|---|
|
gMV_ReqCommandCode |
INT |
所请求命令的代码。 有关可用命令及其代码的更多信息,请参阅插件与 PLC 之间的通讯主题。 |
|
gMV_CommandRecipeIdInUse |
BOOL |
指示“gMV_CommandRecipeId”中定义的配方是否将用于“gMV_ReqCommandCode”中请求的命令。 |
|
gMV_CommandRecipeId |
DINT |
当“gMV_CommandRecipeIdInUse”的值设置为 TRUE 时,将用于“gMV_ReqCommandCode”中所请求命令的配方的 ID。 |
默认情况下不提供这种类型的字段。只有在相应地配置插件时,才会将它们添加到 PLC 内存。因此,插件的配置决定了哪些动态字段将用于通讯。与静态字段一样,一些动态字段是由插件写入的,其他一些是由 PLC 写入的。以下部分提供了动态字段的概述。
由插件写入的动态字段
|
字段 |
描述 |
|---|---|
|
gMV_ResultUseArray_<TYPE> |
指示是否可以查询相应数据类型的任何结果。 它包含一个数组,其中每个位都用作此数据类型特定结果的指示符。数组大小取决于插件的配置,即取决于 Writing Data to PLC Memory 类别中相应结果数据类型的设置。 例如,如果插件参数“INT (signed 16-bit integer) result allocation”设置为 2,则“gMV_ResultUseArray_INT”字段将添加到 PLC 内存中。如果“gMV_ResultUseArray_INT”的两个最低有效位为 TRUE,则数据类型 INT 的两个结果都可用。 可用的数据类型:
|
|
gMV_Result_<TYPE>_<INDEX> |
相应数据类型的实际结果值。每个结果将被写入其自身的字段中。结果字段的标签由前缀“gMV_Result_”加上数据类型和结果索引组成。 只有在类别 Writing Data to PLC Memory 中相应地设置了插件的配置时,这些类型的字段才会添加到 PLC 内存中。 例如,如果插件参数“INT (signed 16-bit integer) result allocation”设置为 2,则将有两个结果值字段添加到 PLC 内存中:“gMV_Result_INT_0”和“gMV_Result_INT_1”。 |
由 PLC 写入的动态字段
|
字段 |
描述 |
|---|---|
|
gMV_ItParamUseArray_<TYPE> |
指示相应数据类型的配方参数是否应在下一次执行时被相应迭代参数字段中定义的值覆盖。 它包含一个数组,其中每个位都用作此数据类型的特定迭代参数的指示符。数组大小取决于插件的配置,即取决于 Reading Data from PLC Memory 类别中相应迭代参数数据类型的设置。 例如,如果插件参数“INT (signed 16-bit integer) iteration parameter allocation”设置为 2,则字段“gMV_ItParamUseArray_INT”将与迭代参数值的“gMV_ItParam_INT_0”和“gMV_ItParam_INT_1”字段一起添加。如果“gMV_ItParamUseArray_INT”的前两位设置为 TRUE,则数据类型 INT 的前两个配方值将在下一次执行时被“gMV_ItParam_INT_0”和“gMV_ItParam_INT_1”中定义的值覆盖。 |
|
gMV_ItParam_<TYPE>_<INDEX> |
相应数据类型的迭代参数的值。 只有在类别 Reading Data from PLC Memory 中相应地设置了插件的配置时,这些类型的字段才会添加到 PLC 内存中。 例如,如果插件参数“INT (signed 16-bit integer) iteration parameter allocation”设置为 2,则将有两个结果值字段添加到 PLC 内存中:“gMV_ItParam_INT_0”和“gMV_ItParam_INT_1”。 |
MERLIC 状态
使用 MELSEC Communication 插件时,MERLIC 的内部状态通过“gMV_CurrentState”字段传输到 PLC。
传输关于当前状态的信息的字节编码如下:
|
位栏位置 |
数值 |
MERLIC 状态 |
描述 |
|---|---|---|---|
|
0 |
1 |
Preoperational |
如果该位数设置为 1,则MERLIC处于状态“Preoperational”。 |
|
|
|
OperationalAutomaticMode Initialized Ready SingleExecution ContinuousExecution |
如果该位数设置为 1,则MERLIC处于状态“OperationalAutomaticMode”。这意味着 MERLIC 的状态为“Initialized”、“Ready”、“SingleExecution”或“StartContinuous”。
|
|
|
|
Halted |
如果该位数设置为 1,则MERLIC处于状态“Halted”。 |
|
|
|
Error |
如果该位数设置为 1,则MERLIC处于状态“Error”。 |
|
|
|
OperationalFrontendAccessMode |
如果第 3 位数和第 8 位数已设置,则 MERLIC 处于手动状态。这意味着 MERLIC 只能通过 MERLIC Frontend 进行控制。有关手动模式的更多信息,请参阅 MERLIC 手册中的 Frontend 中的写入权限主题。 |
有关 MERLIC 的可用状态及其转换的更多信息,请参阅 MERLIC 手册中的 MERLIC 状态主题。