1.ASCIIdriver协议概述
ASCII driver用于控制CPU和一个通信伙伴之间串行连接的数据传输,仅包含物理层。大多数的应用均使用ASCII driver协议,如连接驱动装置和条码阅读器等。ASCII driver可以发送和接收开放式的数据(所有可以打印的ASCII字符),8个数据位的字符可以发送和接收00~FFH之间的所有字符,7个数据位的字符可以发送和接收00~7FH之间的所有字符,提供一种开放式的报文帧结构。
ASCII driver协议可以用字符延迟时间、帧的长度或结束字符作为报文帧结束的判据,接收方必须在组态时设置报文帧的结束判据。
图10-1 字符延迟时间
其各判据的含义如下:
1)用字节延迟时间作为报文帧结束的判据。报文帧没有设置固定的长度和结束符,接收方在约定的字符延迟时间内未收到新的字符则认为报文帧结束,如图10-1所示。
2)用固定的字节长度(1~1024B)作为报文帧结束的判据。如果在完成接收设置的字符之前字符延迟时间到,那么将停止接收,同时生成一个出错报文;如果接收到的字符长度大于设置的固定长度,多余的字符将被删除;如果接收到的字符长度小于设定的固定长度,那么该报文将被删除。
3)用结束字符作为报文帧结束的判据。用一个或两个用户定义的结束字符表示报文帧的结束,应保证在用户数据中不包括结束字符。
2.ASCIIdriver通信功能块概述
通信处理器不同,CPU发送和接收数据时调用的通信功能块也不同,常用通信功能块见表10-2。
表10-2 ASCIIdriver协议通信所需功能块
3.ASCIIdriver应用实例
(1)项目说明
上面说明了ASCII驱动通信方式的原理,下面以CP341-RS232C接口与PC的串口调试工具通信为例,介绍通信处理器CP341使用ASCII driver协议的接收数据和发送数据。
(2)系统组成
本项目的连接配置如图10-2所示,所需硬件和软件见表10-3。
图10-2 RS-232C系统配置
表10-3 所需硬件和软件
(www.xing528.com)
(3)组态和配置
首先需要在计算机上安装STEP 7软件和CP340/CP341模块的软件驱动程序(SIMATIC S7-CP PtP Param V5.1)。
然后进行硬件组态,在硬件组态窗口中双击CP模块,打开CP模块的属性窗口,如图10-3所示,单击Addresses选项卡即可看到该CP模块的硬件地址(在编写通信程序时,需要使用该地址参数)。
图10-3 CP341属性窗口
单击属性窗口底部的“Parameter…”按钮,选择通信协议Protocol为ASCII,如图10-4所示,然后双击Protocol图标,弹出ASCII协议的通信参数设置窗口,如图10-5所示。在该窗口中设置通信参数,如报文帧结束标志、通信速率、数据位数、奇偶校验等,此处使用默认值。设置完成后对硬件组态进行保存并编译,将硬件组态下载到PLC,如果此时SF灯亮,则将通信电缆与其通信伙伴连接,SF灯熄灭说明硬件组态正确。
(4)程序设计
双击OB1,打开OB1编程画面,从库“Libraries->CP PtP->CP341”中调用发送功能块FB8 P_SND_RK和接收功能块FB7 P_RCV_RK,为其分配背景数据块DB8和DB7。将参数LADDR设为硬件组态中CP341的起始逻辑地址256,LADDR的值应与图10-3的地址相同。在程序中插入DB1(作为数据发送区)和DB2(作为数据接收区),如图10-6所示。
图10-4 ASCII driver协议选择
图10-5 ASCII协议通信参数设置窗口
图10-6 发送和接收数据块
在OB1中,CP341的发送功能块FB8的参数设置和接收功能块FB7的参数设置见表10-4和10-5所示。OB1中的程序如图10-7所示。发送和接收模块参数见表10-4、表10-5。
表10-4 发送模块参数
图10-7 OB1程序
(5)通信调试
将CP341的通信口与PC的串口相连,可在上位机使用串口调试软件进行调试。注意:需将M20.0和M30.0置1使能发送和接收。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。