在控制器数据区域中创建一个MESSAGE类型结构数据标签,分配给一条MSG指令,也可以在MSG指令的Message Control项直接键入结构数据标签名称,在该项处右击后,点击New Tag…,进入创建新标签的界面,这时系统会自动选定MESSAGE类型的结构数据。总之,每条MSG指令都必须对应一个MESSAGE类型结构数据标签,用来记录本条指令的组态信息和执行状况。
MSG指令是系统对外操作的指令,MESSAGE类型结构数据包含了本条指令的组态信息和状态信息,由于指令执行的状态就是对外部设备通信操作的当前状态,所以像I/O模块组态一样,这个结构数据标签必须放在控制器区域,即外部数据区域,且不能用作为结构数据数组标签,只能创建为单一的结构数据标签。当梯形图例程的梯级逻辑使能,MSG指令被启动后,不能当即执行完毕,而是进入控制器的通信缓冲区排队,等待通信机会,一旦获得,则跟设备通信,进行数据的交换,直到数据交换完毕,指令执行才会完成。在此过程中,指令将处于不同的工作状态。如图13-1所示是MESSAGE类型结构数据中的状态位和设置位部分。

图13-1 MESSAGE类型结构数据中的状态位和设置位
指令状态位:
●EW(等待位):当MSG指令请求进入通信缓冲区排队,该位置位,指令处于等待状态;直到开始位(ST)置位时,等待状态结束,EW复位。
●ER(错误位):MSG指令数据传送失败时,该位置位,MSG指令梯级条件重新触发时自动复位该位。
●DN(完成位):当MSG指令的最后一个数据包成功传送完毕,该位置位,MSG指令的梯级条件重新触发时自动复位该位。
●ST(开始位):MSG指令的数据开始传送,该位置位,直到数据传送结束,不管是否传送成功,当错误位或完成位置位时自动复位该位。
●EN(使能位):MSG指令梯级条件触发,指令被使能,该位置位并保持,即使梯级条件变假,也仍然保持,直到DN或ER置位才复位;如果梯级条件变假,但DN或ER被清除,处于复位状态,则仍然保持EN位置位。总之,MSG指令使能位与梯级条件并不一致,还跟DN位和ER位的状态有关。
以上5个位为只读数据,不可更改,是系统给出的MSG指令执行时的状态。此为结构数据标签的子元素,可以送至人机界面用于提示,如错误位置位的状态。
指令设置位:
●TO:可在MESSAGE结构数据标签中手动直接设置该位,如果设定,控制器停止处理数据传送,并置位ER,MSG指令使能时将自动清除该位。
●EN_CC(使能连接位):用于管理MSG指令的缓存连接,这个位的设置状态取决于MSG指令通信页面的
选项,当此项被选定,该位为1;当此项被取消,该位为0。同样,可编写梯级逻辑实现EN_CC位的变更,从而动态地管理MSG指令的缓存连接。
以上两个位是设置数据,可以在数据表中的结构数据标签中直接设置,也可以通过编写梯级逻辑来动态设置。
为了更清楚地了解各状态位之间的依存关系,作为正确运用状态位的依据,让编写的MSG指令能够精确无误地执行,下面我们通过如图13-2所示的状态过程图来讨论MSG指令执行过程中状态位的变化。(https://www.xing528.com)

图13-2 状态过程图
状态位变化7步过程讨论:
●第1步:梯级条件变为真,EN置位,EW置位,缓存连接打开,EN_CC位设置为1,缓存连接保持打开;EN_CC位设置为0,缓存连接启动打开。
●第2步:数据开始传送,ST置位,EW复位,缓存连接仍然被打开。期间梯级条件变为假,EN保持置位。
●第3步:MSG指令数据传送完成或出错,梯级条件已经变为假,使能位复位,ST复位,DN或ER置位。EN_CC位设置为1,缓存连接保持打开;EN_CC位设置为0,缓存连接关闭。
●第4步:梯级条件再变为真,EN置位,EW置位,缓存连接打开,EN_CC位设置为1,缓存连接保持打开;EN_CC位设置为0,缓存连接启动打开。先前DN或ER的置位状态被复位。
●第5步:数据开始传送,ST置位,EW复位,缓存连接仍然被打开。期间梯级条件一直保持为真,EN保持置位。
●第6步:MSG指令数据传送完成或出错,梯级条件仍然为真,EN仍然置位,ST复位,DN或ER置位。EN_CC位设置为1,缓存连接保持打开;EN_CC位设置为0,缓存连接关闭。
●第7步:梯级条件变为假,使能位被复位,DN或ER仍保持置位。
可见,MSG指令一旦被触发,不管梯级条件是否持续存在,指令都处在使能状态,直到工作结束为止。EW、ST以及DN和ER依次置位,而且DN和ER的置位状态要保持到下一次梯级条件触发才会清除。
缓存连接如果设定为固定连接,即EN_CC位设置为1,则一直都保持连接,不会释放;缓存连接如果设定为动态连接,即EN_CC位设置为0,在指令等待和数据传送期间保持缓存连接,其余时间则释放缓存连接,只有等待和交换数据时才会占用连接。
如果MSG指令ER置位,错误代码和扩展错误代码将存放在MESSAGE结构数据标签的子元素中,如图13-3所示。尽管错误代码在指令的监视页面同样可以读到,但作为结构数据标签的子元素是可以送至人机界面作为提示信息的。

图13-3 错误和扩展错误代码存放
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
