首页 历史故事通信指令解析:DONE信号状态不能肯定数据已被读取

通信指令解析:DONE信号状态不能肯定数据已被读取

【摘要】:参数DONE的信号状态为“1”并不表示是确认通信伙伴已读取发送数据。表5-17 点对点指令(续)以上仅是简要介绍通信指令的功能,关于通信指令的详细使用将在第8章进行介绍。

通信指令包括可自动连接/断开的开放式以太网通信指令、控制通信过程的指令以及PTP指令等。使用通信指令都需要设置背景数据块。

1.可自动连接/断开的开放式以太网通信指令

可自动连接/断开的开放式以太网通信指令包括TSEND_C和TRCV_C,如图5-33所示。要注意的是,图5-32所示的通信指令底部有个“▼”符号,点击此符号将显示该指令的更多参数,可以根据需要进行参数设置,后面遇到此种情形将不再赘述。

978-7-111-34922-8-Chapter05-54.jpg

图5-33 开放式以太网通信指令

(1)TSEND_C指令

TSEND_C是异步指令,该指令具有以下功能:

1)设置并建立通信连接。TSEND_C可设置并建立TCP或ISO-on-TCP通信连接。设置并建立连接后,CPU会自动保持和监视该连接。在参数CONNECT中指定的连接描述用于设置通信连接。要建立连接,参数CONT的值必须设置为“1”。连接成功建立后,参数DONE在一个周期内设置为“1”。若CPU转到STOP模式,则将终止现有连接并删除所设置的相应连接。必须再次执行TSEND_C,才能重新设置并建立该连接。

2)通过现有通信连接发送数据。通过参数DATA可指定要发送的区域,包括要发送数据的地址长度。在参数REQ中检测到上升沿时执行发送作业。使用参数LEN指定通过一个发送作业可发送的最大字节数。在发送作业完成前不允许编辑要发送的数据。如果发送作业成功执行,则参数DONE将设置为“1”。参数DONE的信号状态为“1”并不表示是确认通信伙伴已读取发送数据。

3)终止通信连接。参数CONT设置为“0”时,将终止通信连接。

(2)TRCV_C指令

TRCV_C是异步指令,该指令具有以下功能:

1)设置并建立通信连接。TRCV_C可设置并建立TCP或ISO-on-TCP通信连接。设置并建立连接后,CPU会自动保持和监视该连接。使用参数CONNECT指定的连接描述,可以设置通信连接。要建立连接,参数CONT的值必须设置为“1”。连接成功建立后,参数DONE在一个周期内设置为“1”。若CPU转到STOP模式,将终止现有连接并删除所设置的相应连接。必须再次执行TRCV_C,才能重新设置并建立该连接。

2)通过现有通信连接接收数据。如果参数EN_R的值设置为“1”,则启用数据接收,接收到的数据将输入到接收区中。根据所用的协议选项,通过参数LEN指定接收区长度(如果LEN<>0),或者通过参数DATA的长度信息来指定(如果LEN=0)。成功接收数据后,参数DONE的信号状态为“1”。如果数据传送过程中出错,参数DONE将设置为“0”。

3)终止通信连接。参数CONT设置为“0”时,将终止通信连接。

2.控制通信过程的指令

控制通信过程的指令如表5-16所示。

表5-16 控制通信过程的指令

978-7-111-34922-8-Chapter05-55.jpg

(续)

978-7-111-34922-8-Chapter05-56.jpg

3.点对点指令

点对点指令如表5-17所示。

表5-17 点对点指令

978-7-111-34922-8-Chapter05-57.jpg

(续)

978-7-111-34922-8-Chapter05-58.jpg

以上仅是简要介绍通信指令的功能,关于通信指令的详细使用将在第8章进行介绍。