文档库 最新最全的文档下载
当前位置:文档库 › ATV71&ATV61的Profibus-DP通讯详解

ATV71&ATV61的Profibus-DP通讯详解

ATV71&ATV61的Profibus-DP通讯详解
ATV71&ATV61的Profibus-DP通讯详解

ATV71与ATV61的Profibus-DP连接

施耐德(苏州)变频器有限公司市场部

邓黎勇

2006年5月

目录

本文的目的

Profibus-DP网络简介

可选网络连接附件

Step-by-Step 实现Profibus-DP连接

1.通讯卡VW3 A3 307的安装与设置

2.变频器的参数设置

?命令通道的设置

?读写参数的设置

?举例:读写变频器的加速时间

3.Profibus-DP网络组态(Step-7)

?安装ATV71/ATV61变频器的GSD文件

?组态Profibus-DP网络

?变频器数据的读写

4.Profibus-DP网络组态(PL7)

?SyCon:Profibus-DP网络组态工具

?用SyCon软件来配置Profibus-DP网络

?PLC编程软件PL7的配置

5.Profibus-DP通讯格式:PZD区域与PKW区域

6.变频器通讯控制流程DriveCom

7.命令字CMD和状态字ETA

其它

本文的目的:

这篇文章的目的是指导施耐德技术工程师、销售人员、分销商的技术工程师、以及用户的工程师如何用施耐德ATV71/ATV61变频器连接Profibus-DP网络。文章风格追求简捷易懂,如果有更复杂应用的要求,请在本文的基础上参照ATV71的Profibus中文手册(ATV71_Profibus_Manual_CH_V1.pdf )。

<点击此处返回目录>

Profibus-DP网络简介:

Profibus-DP是一个性能很强的高速现场总线,它符合工业通信的要求。主站周期地读取从站的输入信息并周期地向从站发送输出信息。Profibus-DP具有两种介质访问方式:

?分散方式,使用令牌传递原理。

?集中方式,使用主-从通讯原理。

它采用的物理连接可以是RS-485双绞线、双线电缆或光缆,拓扑结构可以是树型、星型、或者环形,波特率从9.6Kbit/s到12Mbit/s,总线上最多站点(主-从设备)数为126。

<点击此处返回目录>

可选网络连接附件:

要实现ATV71/ATV61与Profibus-DP网络的物理连接,

Profibus-DP通讯卡VW3A3307是必不可少的。

右图就是ATV71、ATV61所通用的Profibus-DP通讯卡

VW3A3307的外形。

作为Profibus-DP网络的从站,该卡有一个标准的九针SUB-D型母接头。不需要任何额外设备,就可以用标准的Profibus-DP网络电缆及接头连接到Profibus-DP网络。

如果有需要,也可以采用施耐德提供的Profibus-DP接头和电缆来构建网络:

用户也可以自己做连接电缆和接头,VW3 A3 307的9针接头管脚定义如下:

<点击此处返回目录>

Step-by-Step 实现Profibus-DP连接

通讯卡VW3 A3 307的安装与设置:

1.安装

所有通讯卡、IO扩展卡、Controller Inside卡的安装,都按上图所示安装。2.设置

右图是通讯卡示意图。

1.LED指示灯

2.Profibus-DP寻址开关

3.9针SUB-D型母接头

对于该通讯卡,仅需要做一个设置。

即:设置Profibus-DP的从站地址

如右图的例子所示,这8个Profibus-DP寻址开

关的最低位在右边,最高位在左边。拨码拨到下

面为ON,拨到上面为OFF。

3.地址配置注意事项:

?改动地址后,要重新上电才能使用。

?地址0和1通常为Profibus-DP主机保留,不能用于从站地址。

?建议不要使用地址126,因为它与SSA服务(设置从机地址)以及一些网络配置软件(如Sycon)不兼容。

<点击此处返回目录>

变频器的参数设置:

1.命令通道的设置

如果用户要通过Profibus-DP网络实现对变频器的启动、停止和速度给定的控制,则需要对命令通道的相关参数进行设置。如果仅仅是读取或者修改变频器的一些参数,则可以跳过此段。

通过通讯给定速度:

在变频器的 1.6命令菜单里,当变频器插上通讯卡后,给定通道的选项里会新增一项选项:通信卡。如果用户需要通过Profibus-DP通讯给定

通过通讯控制起停:

当变频器插上通讯卡后,命令通道设置的选项里会增加一项“通讯卡”。如果用户需要通过Profibus-DP通讯控制变频器的起停,则需要将命令通道设置定义为“通讯卡”。

<点击此处返回目录>

2.读写参数的设置

在变频器的“1.9通信”菜单里,前两个子菜单分别是COM.SCANNER INPUT和COM.SCANNER OUTPUT。通过对这两个子菜单的设置,我们可以实现变频器和PLC之间的数据交换。

要注意:这里INPUT和OUTPUT是从PLC的角度去看的!对于变频器,INPUT是它要发送给PLC的数据,OUTPUT是它接收的来自PLC的数据。

COM.SCANNER INPUT

这个菜单内含8组参数,从Scan.IN1 address到Scan.IN8 address。

用来定义PLC要读取变频器的哪些参数的数据(读)。

COM.SCANNER OUTPUT

这个菜单内含8组参数,从Scan.Out1 address到Scan.Out8 address。用来定义PLC要修改变频器的哪些参数的数据(写)。

变频器内部有数百个参数可供读写,这些参数都被分门别类地整理并被分配了访问的地址。参考ATV71中文通讯手册,查找出需要访问的参数的地址,并把这个地址写到COM.SCANNER INPUT或COM.SCANNER OUTPUT 菜单的参数里,就可以实现对该参数的访问。

<点击此处返回目录>

3.举例:读写变频器的加速时间。

以加速时间(ACC)为例,在手册中(P201)查找到ACC的描述如下:

十进制的逻辑地址9001,既是Profibus-DP的通讯地址,又是Modbus的通讯地址。其读写类型为R/W,意为可读可写。

如果我们要通过通讯读取该参数的值,那么我们在COM.SCANNER INPUT 菜单里将8个参数里的一个的值改为9001,我们就可以读取到变频器的加速时间参数的值;如果我们要通过通讯修改该参数的值,那么我们在COM.SCANNER OUTPUT菜单里将8个参数里的一个的值改为9001,我们就可以修改变频器的加速时间参数的值。

在出厂设置里,COM.SCANNER INPUT菜单的8组参数初值为:

Scan.IN1 address :3201

Scan.IN2 address :8604

Scan.IN3 address :0

Scan.IN4 address :0

Scan.IN5 address :0

Scan.IN6 address :0

Scan.IN7 address :0

Scan.IN8 address :0

它的含义是:我们可以一次读取变频器中8个参数的值,第一个参数是状态字ETA的值(注:从通讯手册中查找到的状态字ETA的地址是8603,但是3201也是状态字的另一个未公开的地址),第二个参数是输出速度RFRD的值。其它6个地址都是0,故没有对应的参数。

在出厂设置里,COM.SCANNER OUTPUT菜单的8组参数初值为:

Scan.Out1 address :8501

Scan.Out2 address :8602

Scan.Out3 address :0

Scan.Out4 address :0

Scan.Out5 address :0

Scan.Out6 address :0

Scan.Out7 address :0

Scan.Out8 address :0

它的含义是:我们可以一次修改变频器中8个参数的值,第一个参数是命令字CMD(注:从通讯手册中查找到的命令字CMD的地址是8601,但是8501也是命令字的另一个未公开的地址),第二个参数是速度给定LFRD。其它6个地址都是0,故没有对应的参数。

因此,对于本例,设置:

Scan.IN3 address :9001

PLC就可以读取ACC参数。设置:

Scan.Out3 address :9001

PLC就可以修改ACC参数。

综上所述,通过Profibus-DP控制变频器,在变频器参数设置方面也很简单,只需要设置需要读取或修改的参数的地址就可以了。一般情况下,采用缺省的出厂设置就足够了。

<点击此处返回目录>

Profibus-DP网络组态(Step-7):

本段介绍用西门子PLC做Profibus-DP主站时,如何组态Profibus-DP网络。无论采用何种组态方式,ATV71/ATV61变频器的GSD文件(Tele0956.GSD)都是必不可少的。

任何从站设备,如果想挂上Profibus-DP网络,都必须提供一个GSD文件。这个GSD文件起到一个识别其身份、分配其功能的作用。

目前最新的ATV71/ATV61公用的GSD文件(Tele0956.GSD)的创建日期是2005年9月5日。

如果没有确定PLC,那么我们首先推荐用户采用施耐德PLC,施耐德PLC挂Profibus-DP网络是非常便捷的。对于已经选定了西门子PLC的用户,必然是对西门子PLC比较熟悉,因此本文不再详细介绍西门子Step-7软件的使用方法和编程细节。

1.安装ATV71/ATV61变频器的GSD文件

在Step-7软件的硬件配置画面(Hardware Config),选择菜单Options下的Install New GSD...

在随后的弹出窗口中,找到GSD文件所在的文件夹,并安装。

安装完成后,在Step-7的HW Config窗口,右侧的可选设备中,会增加一项 ATV71/61-Profibus-DP。

<点击此处返回目录>

2.组态Profibus-DP 网络

鼠标点击该设备并拖动到左侧的Profibus-DP 网络,就完成了将ATV71/ATV61组态到Profibus-DP 网络的过程。

组态完成后的画面如下图所示:

上图所示的组态画面共有三个窗口,左上侧的窗口是Profibus-DP 网络部分(1),左下的窗口是分配给设备的地址(2),右侧窗口是可选的Profibus-DP 设备(3)。

鼠标点击1所示的ATV71/ATV61变频器图标,则在2所示的部分就显示了分配给该变频器的变量地址。

分配的地址共分两部分,Slot1显示的是Profibus-DP 通讯的PKW 区域,占4个输入字和4个输出字。它们分别是PIW256、PIW258、PIW260、PIW262,和PQW256、PQW258、PQW260、PQW262。

Slot2显示的是Profibus-DP 通讯的PZD 区域,占10个输入字和10个输出字。它们分别是:PIW264…PIW282,和PQW264…PQW282。 <点击此处返回目录>

1

2

3

3.变频器数据的读写

经过上述步骤,我们就可以在PLC中读写变频器的数据了。

在第6页和第7页中,我们提到变频器可以定义8个输入字COM.SCANNER INPUT和8个输出字COM.SCANNER OUTPUT。这16个字就对应到了上图所示的Profibus-DP的PZD区域的前8个输入字和前8个输出字。最后两个输入字和最后两个输出字系统留做备用。

比如,在出厂设置里,COM.SCANNER INPUT的定义如下:

Scan.IN1 address :3201 -> PIW264

Scan.IN2 address :8604 -> PIW266

Scan.IN3 address :0 -> PIW268

Scan.IN4 address :0 -> PIW270

Scan.IN5 address :0 -> PIW272

Scan.IN6 address :0 -> PIW274

Scan.IN7 address :0 -> PIW276

Scan.IN8 address :0 -> PIW278

3201和8604分别是变频器状态字(ETA)的地址和输出速度(RFRD)的地址。

对应到PLC,就分别是PIW264和PIW266的值。因此,经过上述步骤的配置后,PLC程序就可以直接从PIW264和PIW266来获得状态字和输出速度的值了。

<点击此处返回目录>

Profibus-DP网络组态(PL7):

本段介绍采用施耐德PLC(以Premium为例)组态Profibus-DP网络的方法。

正如前文所说,不论用哪种方法来组态网络,ATV71/ATV61变频器的GSD文件(Tele0956.GSD)都是必不可少的。当用施耐德PLC做Profibus-DP主站时,我们采用SyCon软件来组态网络。与用西门子Step-7软件不同的是,Step-7需要安装GSD文件,而SyCon仅需要把GSD文件拷贝的其目录下就可以了。

缺省的GSD文件目录是:

C:\Program Files\Schneider\SyCon\Fieldbus\PROFIBUS\GSD

1.SyCon:Profibus-DP网络组态工具

SyCon是一个独立的软件,可以用来组态Profibus-DP、CAN-OPEN、InterBus三种网络。我们用该软件完成网络组态后,将组态好的网络保存成一个文件,然后用我们的PLC编程软件上载上来就可以使用了。

<点击此处返回目录>

2.用SyCon软件来配置Profibus-DP网络

运行SyCon软件:

新建一个网络组态,并且选择Profibus网络:

首先,我们来配置Profibus-DP网络的主站,按下图所示的步骤,点击表示主站的图标,然后在下面的配置窗口点击主站所在的位置:

在随后弹出的主站选择窗口中选择Premium的Profibus-DP通讯模块TSX PBY 100,加入后点击OK确定。

这样,我们就把Profibus-DP网络的主站配置完成了。此时SyCon软件的画面如下图所示:

用类似的方法,我们来配置Profibus-DP的从站。

首先,点击插入从站的图标,然后在从站位置点击。

然后选择并加入从站设备,可以看到软件给自动分配的地址。这个地址也可以根据需要修改。

2

1

这样,我们就给Profibus-DP网络配置了一个ATV71/ATV61从站:

如果网络有不止一个从站,可以重复上述步骤,增加从站单元。

如果我们双击表示从站的图标,就可以打开从站配置窗口:

从上面的从站配置窗口我们可以看到,该站共占用了14个输入字和14个输出字,其中Profibus-DP通讯格式的PKW区域占了4个输入字和4个输出字,PZD区域占了10个输入字和10个输出字。

对于了解Profibus-DP通讯格式的读者,你们知道选择不同的PPO,就可以给每个从站配置不同长度的输入字和输出字。但是,很不幸的是,对于ATV71和ATV61,这些字的数量和格式是无法修改的,每个站都必须占满14个输入字和14个输出字。只有这一个选择。

做完上面的配置工作后,我们接下来要做的工作,是把这个配置保存下来。供PLC软件上载。

参考下图所示的画面,首先,我们要点击主站模块,保证目前选中的是Profibus-DP网络的主站。

然后,选择File菜单下的Save,保存该配置,并Export -> ASCII,产生一个CNF文件。

经过上述步骤后,我们就完成了Profibus-DP网络的组态工作,并且得到了一个配置文件*.cnf。通过它,我们就可以进行下一步工作:配置PLC软件PL7。

<点击此处返回目录>

3.PLC编程软件PL7的配置

PL7软件是施耐德Premium和Micro PLC的编程软件,本段以PL7为例,说明如何完成搭建Profibus-DP网络的最后一步。

首先,运行软件,并进入硬件配置画面,选择并配置PLC的硬件模块,尤其是Profibus-DP的主站模块 TSX PBY 100:

双击该模块,进入配置窗口:

点击Load CNF按钮,将我们上一步产生的配置文件上载上来。

在上图所示的例子里,我们配置了一个主站和两个从站,它们的地址分别是1、2、3。点击选中地址2表示的从站,在右下侧的Profibus-DP Slave Data 中可以看到分配给该从站从%IW2.0(即%IW2.0.0)到%IW2.0.13共14个输入字和从%QW2.0到%QW2.0.13共14个输出字。其对应关系如下:

%IW2.0 PKW %IW2.0.1 PKW

%IW2.0.2 PKW

%IW2.0.3 PKW %IW2.0.4 Scan.IN1 address : 3201

%IW2.0.5 Scan.IN2 address : 8604 %IW2.0.6 Scan.IN3 address : 0 %IW2.0.7 Scan.IN4 address : 0 %IW2.0.8 Scan.IN5 address : 0

%IW2.0.9 Scan.IN6 address : 0

%IW2.0.10 Scan.IN7 address : 0 %IW2.0.11 Scan.IN8 address : 0 %IW2.0.12 保留 %IW2.0.13 保留

PKW 区域 PZD 区域

%QW2.0 PKW %QW2.0.1 PKW

%QW2.0.2 PKW

%QW2.0.3 PKW

%QW2.0.4 Scan.Out1 address : 8501

%QW2.0.5 Scan.Out2 address : 8602 %QW2.0.6 Scan.Out3 address : 0 %QW2.0.7 Scan.Out4 address : 0 %QW2.0.8 Scan.Out5 address : 0

%QW2.0.9 Scan.Out6 address : 0

%QW2.0.10 Scan.Out7 address : 0 %QW2.0.11 Scan.Out8 address : 0 %QW2.0.12 保留 %QW2.0.13 保留

配置完成后保存,我们就完成了Profibus-DP 网络的配置工作。PLC 程序的变量%IW2.0.4就是变频器状态字ETA 的值(地址3201),%IW2.0.5就是变频器输出频率RFRD 的值(地址8604);如果修改%QW2.0.4,则就是在给变频器发送命令字CMD (地址8501),修改%QW2.0.5,就是修改变频器的给定速度LFRD (地址8602)。

同理,如果要访问变频器其它参数,则只需要在通讯手册中查找到该参数的地址,然后利用变频器的面板,修改这两组参数的地址,就可以把它们对应到PLC 的寄存器中了。

<点击此处返回目录>

Profibus-DP 通讯格式:PZD 区域与PKW 区域:

前文提到,Profibus-DP 通讯有PKW 区域和PZD 区域。以输出字为例,从%QW2.0.0到%QW2.0.13共14个字,前4个字是PKW 组于,后10个字是PZD 区域,如下图所示:

无论是PKW 区域,还是PZD 区域,都可以独自用来读写从站的参数。不同的是,如果用PZD 区域读写参数,在变频器的Scanner Input 和Scanner Output 参数里定义好需要访问的变量的地址后,就可以直接通过对应的%IW 和%QW 参数访问了。而如果用PKW 区域访问参数,则是通过这四个PKW 字的组合来访问。

首先,不论是读变频器的参数,还是写变频器的参数,都要通过%QW 来给变频器发命令。这时四个PKW 的字的定义如下:

PKW 区域 PZD 区域

PKE: 要访问参数的逻辑地址

R/W: 请求码,0代表无请求,1代表读请求,2代表写请求(注:仅针对ATV71/ATV61)

PWE: 读请求时无意义,写请求时是要写的值

命令发送后,从%IW对应的四个PKW字可以读到反馈信息,下图是14个输入字的定义:

PKE: 要访问参数的逻辑地址

R/W/N: 响应码,0代表无响应,1代表读请求成功,2代表写请求成功,7代表出错(注:仅针对ATV71/ATV61)

PWE: 若请求成功,则代表参数值,若请求不成功,则:0代表地址错误,1代表无法进行写操作

<点击此处返回目录>

变频器通讯控制流程DriveCom:

对于仅仅通过通讯读写一些参数的应用,上述的内容已经能够满足需要了。但是如果要通过通讯来控制变频器的启停,那么用通讯方式和用端子方式是有区别的。

变频器处于端子控制方式时,比如两线制控制,LI1为正转,LI2为反转。变频器上电就显示Ready。我们闭合LI1,变频器即按照给定的速度运转,断开LI1,变频器则停车。

但是,在这种情况下,如果变频器内部有诸如短路等故障,上电即Ready会造成一些不可预测的后果。因此,在通讯方式下,变频器是分阶段检测其状态,并且反阶段投入使用的。

参考下图(ATV71变频器通讯手册第20页),当变频器上电时,如果没有故障,则变频器处于状态2(通电被(杯)禁止)。此时变频器状态是NST,如果通了三相交流电,则状态字ETA最后两位的值为16进制的50,否则是16进制的40。

这时,给变频器发命令字CMD=16#0006,如果变频器无故障,则变频器进入状态3(通电准备好)。这时,如果通了三相交流电,则状态字ETA最后两位的值为16进制的31,否则是16进制的21。

然后我们给变频器发命令字CMD=16#0007,则变频器完成起动准备,进入状态4。此时三相电必须加上。状态字ETA=16#**33。

S7-200通讯的编程步骤---自由口通讯

PLC 和变频器 频器博客原创(https://www.wendangku.net/doc/d811754903.html,)
S7通讯的编程步骤-----自由口通讯 S7-200 通讯的编程步骤---自由口通讯
S7-200 自由口通讯是基于 RS485 通讯基础的半双工通讯, 因此, 发送和接收指令不能同时执行。 自由口通讯使用 SMB30(口 0)和 SMB130(口 1)来定义通讯口 的工作模式。SMB30/SMB130 各位的定义如下:
图 1:通讯口工作模式寄存器
使用自有口通讯,SM30.0 和 SM30.1(SM130.0 和 SM130.1=0) 必须分别为 1 和 0。 发送指令(XMT) 一、 发送指令(XMT) 使用 XMT 发送指令可以把存于缓冲区中的数据, 一次发送一个或
1

PLC 和变频器 频器博客原创(https://www.wendangku.net/doc/d811754903.html,)
多个字节的数据,最多为 255 个。发送完最后一个字符后还可以连接 到一个发送完中断(端口 0 为 9,端口 1 位 26,见下表) 。
图 2:中断事件表
2

PLC 和变频器 频器博客原创(https://www.wendangku.net/doc/d811754903.html,)
发送缓冲区的格式如下表所示:
图 3:发送缓冲区的格式 说明: T+0:发送信息的字节个数需要提前定义。 T+1~T+255:要发送的数据字节
和 XMT 有关的寄存器:SMB4 的 SM4.5 和 SM4.6。SM4.5=1 时,口 0 发送完毕;SM4.6=1 时,口 1 发送完毕。 由以上可以看出,有两种方法可以检测端口 0 或 1 的数据发送 状态:一种是利用中断,一种是利用寄存器 SMB4 的第 5 位(口 0) 和第 6 位(口 1) 。 接收指令(RCV) 二、 接收指令(RCV) 使用接收指令(RCV)可以从端口 0 或 1 接收一个或多个字节的 数据(最多 255 个) ,并存于数据缓冲区。接收完最后一个字节后可 以连接到一个接收完中断(口 0 是 23,口 1 是 24,见图 2 所示) 。 接收缓冲区的格式如下表所示:
3

最新376-2报文解析

Q / GDW376.1—2009电力用户用电信息采集系统通信协议报文解析示例 1.硬件初始化 下行数据:68 0F 00 41 01 00 00 00 00 00 01 01 00 44 16 68 //起始字符(68H) 0F 00 //长度L DIR=0:表示此帧报文是由集中器发出的下行报文;DIR=1:表示此帧报文是由通信模块发出的上行报文。 启动标志位PRM PRM =1:表示此帧报文来自启动站;PRM =0:表示此帧报文来自从动站。 通信方式 通信方式是指集中器下行的通信模块所采用的通信方式类型,不同的通信方式决定用户数据区中的数据构成和格式,本部分根据不同的通信方式分别定义和描述 精品文档

精品文档 D14 D0 ──当信息域的“通信模块标识”为0时,无地址域A 。 01 //应用功能码AFN=0x01,初始化命令 01 00 // 数据单元标识Fn ,F1:硬件初始化 44 //帧校验和 16 //帧结束符 上行确认:68 13 00 81 01 00 40 00 00 00 00 01 00 FF FF 00 00 C1 16 68 13 00 DIR=0:表示此帧报文是由集中器发出的下行报文;DIR=1:表示此帧报文是由通信模块发出的上行报文。 启动标志位PRM PRM =1:表示此帧报文来自启动站;PRM =0:表示此帧报文来自从动站。 通信方式 通信方式是指集中器下行的通信模块所采用的通信方式类型,不同的通信方式决定用户数据区中的数据构成和格式,本部分根据不同的通信方式分别定义和描述

D14D0 ──当信息域的“通信模块标识”为0时,无地址域A。 00 //AFN=0x00,确认/否认帧 01 00 //数据单元标识Fn=1,确认 精品文档

RS232串口通信详解

RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 通信原理知识2010-01-03 20:53 阅读1 评论0 字号:大中小RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 串口是计算机上一种非常通用的设备通信协议。 --------------------------------- 串口的引脚定义: 信号方向来 9芯 缩写描述 自 1调制解调器CD载波检测 2调制解调器RXD接收数据 3PC TXD发送数据 4PC DTR数据终端准备好 5GND信号地 6调制解调器DSR通讯设备准备好 7PC RTS请求发送 8调制解调器CTS允许发送 9调制解调器RI响铃指示器

两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。 --------------------------------- 串口的电气特性: 1)RS-232串口通信最远距离是50英尺 2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps 3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V 所以与单片机连接时常常需要加入电平转换芯片: --------------------------------- 串口通信参数: a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。 b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位);扩展的ASCII码是0~255(8位)。 c)停止位:用于表示单个包的最后一位,典型的值为1,1.5和2位。由于数是在传输线上定时的,并且每一

实现S-SMART自由口通讯

如何实现S-SMART自由口通讯

————————————————————————————————作者:————————————————————————————————日期:

如何实现S7-200SMART自由口通讯 自由口通讯协议的关键条件 定义开始接收消息和停止接收消息的条件。 1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0 空闲线条件定义为传输线路上的安静或者空闲的时间。SMW90/SMW190中是以ms为单位的空闲时间。在该方式下,从执行接收指令开始起动空闲时间检测。在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。 空闲线时间应大于以指定波特率传送一个字符所需要的时间。空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。传输速率为19200bit/s时候,可设置空闲时间为2ms。对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。 2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190 起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。起始字符检测一般用于ASCII协议。 3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0 满足空闲线条件之后,接收消息功能查找指定的起始字符。如果接收到的字符不是 smB88/smb188指定的起始字符,将开始重新检测空闲线条件。在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。这种方式尤其适合用于通讯链路上有多台设备的情况。 4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188以接收到的break(断开)作为接收消息的开始。当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。 5、break和起始字符:il=0,sc=1,bk=1,忽略smw90/smw190 断开条件满足后,接收消息功能将查找指定的起始字符。如果接收到的字符不是起始字符,将重新搜索断开条件。所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。起始字符和所有后续字符一起存入消息缓冲区 6、任何字符开始接受:设置il=1,sc=0,bk=0,smw90/smw190=0 忽略smb88/smb188中的起始字符。应为smw90/smw190中的空闲线时间为0,接收指令已经执行,便将立即开始强制接收所有的任意字符,并将存入消息缓冲区。

101规约报文解析

101规约(2002版)报文解析速查 1、初始化 ●主站发: 10 49 4F 98 16 目的:给地址为4F的子站发请求链路状态命令。 子站回答:10 0B 4F 5A 16 目的:子站向主站响应链路状态。 ●主站发: 10 40 4F 8F 16 目的:给地址为4F的子站发复位通信单元命令。 子站回答:10 20 4F 6F 16 目的:ACD位置1,表明子站向主站请求1级数据上送。 ●主站发: 10 7A 4F C9 16 目的:向地址为4F的子站发召唤1级数据命令。 子站回答:68 09 09 68 28 4F 46 01 04 4F 00 00 00 11 16 (ASDU70,CON=28,COT=4) 目的:子站以ASDU70(初始化结束)响应主站的召唤。并ACD位置1,表明子站继续 向主站请求1级数据上送。 后面跟随时间同步和总查询。 2、对时 ●主站发:68 0F 0F 68 73 00 67 01 06 00 00 00 CD 85 36 0D 1E 0C 04 A4 16 目的:给地址为0的子站发对时命令。 对时时间为:04年12月31日13时54分34秒253毫秒 报文解析:

子站发:68 0F 0F 68 80 00 67 01 07 00 00 00 F7 01 36 0D 1E 0C 04 58 16 目的:以ASDU67响应主站对时命令。 3、 总召唤 ● 主站发:68 09 09 68 53 4F 64 01 06 4F 00 00 14 70 16 目的:向地址为4F 的子站发总召唤命令。 子站回答:10 20 4F 6F 16 目的:ACD 位置1,表明子站向主站请求1级数据上送。 ● 主站发:10 5A 4F A9 16 目的:向地址为4F 的子站发召唤1级数据的命令。 子站回答:68 09 09 68 28 4F 64 01 07 4F 00 00 14 46 16 目的:子站响应总召唤,ACD 位置1。 ● 主站发: 10 7A 4F C9 16 目的:主站向子站召唤1级数据。 子站回答:68 87 87 68 28 4F 01 7F 14 4F 01 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 00 00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 01 00 00 00 00 00 00 00 00 00 00 E7 16

DL T645-1997通讯规约通信规约.

DL/T645-1997通讯规约通信规约 1、范围 该通信规约适用于本地系统中多功能表的费率装置与手持单元(HHU)或其它数据终端设备进行点对点的或一主多从的数据交换方式,规定了它们之间的物理连接、通信链路及应用技术规范。 2 、引用标准 GB/T3454-1994 数据通信基本型控制规程 GB/T9387-1995 信息处理系统开放系统互连基本参考模型 DL/T614-1997 多功能电能表 IEC1107-1996 读表、费率和负荷控制的数据交换---直接本地数据交换 IEC1142--1993 读表、费率和负荷控制的数据交换---本地总线数据交换 ITU-TV。24—1993 非平衡双流接口电路的点特性 ITU-TV。28—1993 数据终端设备(DTE)和数据电路终接设备(DCE)之间的 接口电路定义表 3 、RS-485标准串行电气接口 本协议采用RS-485标准串行电气接口,使用点连接成为可能.RS-485接口的一般性能应符合下列要求. 3.1驱动与接收端、耐静电(ESD)±15kV(人体模式)。 3.2 共模输入电压:-7V~+12V。 3.3差模输入电压:大于0.2V

3.4驱动输出电压:在负载阻抗54欧姆时,最大5V,最小1.5V 3.5三态方式输出 3.6半双工通信方式。 3.7驱动能力不小于32个同类接口。 3.8在传输速率不大于100kbps条件下,有效传输不小于1200m 3.9总线是无源的,由费率装置或数据终端、提供隔离电源。 4.1字节格式 每字节含8位二进制码,传输时加上一个起始位(0)、一个偶校验位和一个停止位(1)共11位。其传输序列如图1。D0是字节的最低有效位,D7是字节的最高有效位。先传低位,后传高位。 传送方向 起始位8位数据偶校验位停止位 图1 字节传输序列 4.2 帧格式 帧是传送信息的基本单元。帧格式如图2所示 。

200的自由口通讯说明

自由口通讯概述 S7-200PLC的通讯口支持RS485接口标准。采用正负两根信号线作为传输线路。 工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。 数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。 传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。 字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。 字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。字符传输时间取决于波特率。 数据发送可以是连续的也可以是断续的。所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。 示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.: 示例说明: 16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。如图所示,当数据线上没有字符发送时总线处于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),

再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。因为本例中PLC连续的发送两个字符,所以第一个字符帧的停止位结束后便立即发送下一个字符帧的起始位,之间数据线没有空闲状态。假如PLC断续的发送这两个字符,那么当PLC发送完第一个字符帧的停止位后,数据线将维持一段时间空闲状态,再发送下一个字符帧。 字符传输的时间取决于波特率,如果设置波特率为9.6k,那么传输一个字符帧中的一位用时等于1/9600*1000000=104us,如果这个字符帧有11位,那么这个字符帧的传输时间等于11/9600*1000=1.145ms. 通讯口初始化 SMB30(对于端口0)和SMB130(对于端口1)被用于选择波特率和校验类型。SMB30和SMB130可读可写。见下图2. 图2.特殊存储器字节SMB30/SMB130 示例:定义端口0为自由口模式,9600波特率,8位数据位,偶校验,程序如下图3.:

实验十 自由口通信实验

实验十自由口编程实验 一、实验目的 了解PLC通信功能;初步掌握PLC自由口通信编程方法。 二、实验设备 1、THSMS-A型实验装置二台 2、安装了STEP7-Micro/WIN4.0编程软件的计算机一台 3、PC/PPI编程电缆,网络连接器。 4、锁紧导线若干 三、实验内容与步骤 (1)输入以下程序,通过串口调试软件(可从网上下载,下图为某一款软件主界面)或windows超级终端(使用方法附后,如果你的计算机中没有,请找老师或者从网上下载)观察现象。 Network 1 // 网络标题 // 传送:“S7-200你好”到VW100开始的五个字(十个字节) LD SM0.1 MOVB 16#09, SMB30 //9600,8,N,1 MOVW 16#5337, VW100 //“S”和“7”的ASCII码 MOVW 16#2D32, VW102 //“-”和“2”的ASCII码 MOVW 16#3030, VW104 //两个“0”的ASCII码 MOVW 16#C4E3, VW106 //“你”字的汉字机内码,产生办法:找到汉字区位码,将区码和位码分别变为16进制,再分别加上A0即得 MOVW 16#BAC3, VW108 //“好”的机内码 MOVB 10, VB99 //缓冲区有10个字节(即“S7-200你好”),缓冲区格式见教材P145图7-22 Network 2 LD SM0.5 //秒脉冲,占空比50% EU XMT VB99, 0 //上升沿发送VB99中写明的字节数,从端口0发送 (2)输入以下程序,通过串口调试软件(可从网上下载,下图为某一款软件主界面)或windows超级终端(使用方法附后,如果你的计算机中没有,请找老师或者从网上下载)观察现象。 主程序: Network 1 // 网络标题 // 网络注释 LD SM0.1 MOVB 9, SMB30 MOVB 1, VB100 MOVB 'A', VB101 Network 2 LD SM0.1 ATCH INT0, 8 ENI Network 3 LD I0.1

DLT645通信协议详情

1应用范围 本规范规定了电能表进行点对点的或一终端对多台电能表进行一主多从的本地通讯接口进行数据交换的技术要求,规定了本地系统硬件和协议规范。规定了物理连接、通讯链路及应用技术规范(数据的基本格式、校验方式、编码传输规则等)。 本规范主要参考了部颁DL/T 645-1997多功能电能表通信规约,根据我公司的DSSD331-3、DTSD341-3电能表的特色做了相应的扩展。本规范中未给出的一些例子和示意图请参见部颁规约。 2引用标准 下列标准所包含的条文,通过在本标准中的引用而构成为本标准的条文。本标准出版时,所示版本均为有效,所有标准都会被修订,使用本标准的各方应探讨使用下列标准最新版本的可能性。 DL/T 645-1997 多功能电能表通信规约 DL/T 614-1997 多功能电能表 3术语 3.1费率装置tariff device 固定的数据采集与处理单元,通常与电能表连接或与电能表组装在一起。 3.2手持单元(HHU)hand-heldunit 能与费率装置或电能表进行数据交换的便携式设备。 3.3数据终端设备data terminal equipment 由数据源、数据宿或两者组成的设备。

3.4直接本地数据交换direct local data exchange 一组费率装置与数据终端设备通过总线连接进行数据交换。 3.5本地总线数据交换local bus data exchange 一组费率装置与数据终端设备通过总线连接进行数据交换。 3.6远程数据交换remote data exchange 通过数据网络,数据采集中心与一台或一组费率装置之间的数据交换。 3.7主站master station 具有选择从站并与从站进行信息交换功能的设备。本标准中指手持单元或其它数据终端设备。 3.8从站slave station 预期从主站接收信息并与主站进行信息交换的设备。本标准中指费率装置。 3.9总线bus 连接主站与多个从站并允许主站每次只与一个从站通信的系统连接方式(广播命令除外)。 3.10半双工half-duplex 在双向通道中,双向交替进行、一次只在一个方向(而不是同时在两个方向)传输信息的一种通信方式。 3.11物理层physical layer 规定了数据终端设备或手持单元与费率装置之间的物理接口、接口的物理和电气特性,负责物理媒体上信息的接收和发送。 3.12数据链链路层data-link layer 负责数据终端设备与费率装置之间通信链路的建立并以帧为单位舆信息,保证信息的顺序传送,具有传输差错检测功能。 3.13应用层application layer

如何实现S7-200SMART自由口通讯

如何实现S7-200SMART自由口通讯 自由口通讯协议的关键条件 定义开始接收消息和停止接收消息的条件。 1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0 空闲线条件定义为传输线路上的安静或者空闲的时间。SMW90/SMW190中是以ms为单位的空闲时间。在该方式下,从执行接收指令开始起动空闲时间检测。在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。 空闲线时间应大于以指定波特率传送一个字符所需要的时间。空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。传输速率为19200bit/s时候,可设置空闲时间为2ms。 对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。 2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190 起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。起始字符检测一般用于ASCII协议。 3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0 满足空闲线条件之后,接收消息功能查找指定的起始字符。如果接收到的字符不是smB88/smb188指定的起始字符,将开始重新检测空闲线条件。在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。这种方式尤其适合用于通讯链路上有多台设备的情况。 4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188 以接收到的break(断开)作为接收消息的开始。当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。 5、break和起始字符:il=0,sc=1,bk=1,忽略smw90/smw190 断开条件满足后,接收消息功能将查找指定的起始字符。如果接收到的字符不是起始字符,将重新搜索断开条件。所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。起始字符和所有后续字符一起存入消息缓冲区 6、任何字符开始接受:设置il=1,sc=0,bk=0,smw90/smw190=0

S7-200自由口通讯程序

S7-200自由口通讯程序 MAIN:S7200自由口通讯程序 LD SM0.1 CALL SBR_0:SBR0 //初始化子程序 LD SM0.7 = SM30.0 SBR_0:初始化子程序 LD SM0.0 MOVW +2, VW8 //PLC自由口地址,此处每台机器需设不同的地址 LD SM0.0 MOVB 9, SMB30 //通讯参数,波特率9600,自由口通讯 MOVD &VB100, VD40 MOVW +10, VW54 MOVB 12, VB150 MOVB VB9, VB151 MOVD &VB151, VD60 MOVB 6, SMB34 中断间隔6毫秒 ATCH INT_0:INT0, 10 连接定时中断 ATCH INT_1:INT1, 8 连接字符接收中断 ENI INT_0:中断程序入口定时中断 LD SM0.0 DTCH 10 解除定时中断 MOVD VD40, VD46 VB100的地址送VD46 MOVW +10, VW44 MOVW +10, VW54 ATCH INT_2:INT2, 8 //接收中断起用服务程序INT2 INT_1: 延时转向INT0 LD SM0.0 MOVB 5, SMB34 ATCH INT_0:INT0, 10 INT_2: 接受地址,并判断 LDB= SMB2, VB9 //地址和本机相符 MOVW VW8, AC0 累加器 MOVB 255, SMB34 ATCH INT_3:INT3, 8 //起用中断服务INT3,接受包 ATCH INT_5:INT5, 10 //起用延时监控服务INT5 CRETI LDB= SMB2, VB9 //地址和本机不符 NOT ATCH INT_0:INT0, 10 //返回中断入口

51单片机串口通信的原理与应用流程解析

51单片机串口通信的原理与应用流程解析 一、原理简介 51 单片机内部有一个全双工串行接口。什么叫全双工串口呢?一般来说,只能接受或只能发送的称为单工串行;既可接收又可发送,但不能同时进行的称为半双工;能同时接收和发送的串行口称为全双工串行口。串行通信是指数据一位一位地按顺序传送的通信方式,其突出优点是只需一根传输线,可大大降低硬件成本,适合远距离通信。其缺点是传输速度较低。 与之前一样,首先我们来了解单片机串口相关的寄存器。 SBUF 寄存器:它是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据,可通过指令对SBUF 的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。从而控制外部两条独立的收发信号线RXD(P3.0)、TXD(P3.1),同时发送、接收数据,实现全双工。 串行口控制寄存器SCON(见表1)。 表1 SCON寄存器 表中各位(从左至右为从高位到低位)含义如下。 SM0 和SM1 :串行口工作方式控制位,其定义如表2 所示。 表2 串行口工作方式控制位 其中,fOSC 为单片机的时钟频率;波特率指串行口每秒钟发送(或接收)的位数。 SM2 :多机通信控制位。该仅用于方式2 和方式3 的多机通信。其中发送机SM2 = 1(需要程序控制设置)。接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请。工作于方式0 时,SM2 必须为0。

西门子自由口通讯

一、串口特性设置 SMB30: ppdb bbmm pp:奇偶校验选择,00=不校验,01=偶校验,10=不校验,11=奇校验; d:每个字符的数据位,0=8位/字符,1=7位/字符; bbb:自由口通讯波特率(bit/s) 000=38400,001=19200,010=9600,011=4800,100=2400,101=1200,110=115.2K,111=57.6K;mm:协议选择,00=PPI/从站模式,01=自由端口协议,10=PPI/主站模式,11=保留(默认设置为00=PPI/从站模式); 二、报文接收的状态字 SMB86:nre0 0tcp; n=1:通过用户禁止命令终止报文接收。 r=1:接收报文终止,输入参数错误或无起始或结束条件。 e=1:收到结束字符。 c=1:接收报文终止,超出最大字符数。 t=1:接收报文终止,超时。 p=1:接收报文终止,奇偶校验错误。 三、报文接收的控制字 SMB87:报文接收的控制字,en,sc,ec,il c/m,tmr,bk,0; en:0=禁止报文接收,1=允许报文接收,每次执行RCV指令时检查允许/禁止接收报文位。sc:0=忽略SMB188,1=使用SM1B188的值检查报文的开始。 ec:0=忽略SM189,1=使用SM189的值检查报文的结束。 il:0=忽略SMW190,1=使用SMW190的值检测空闲状态。 c/m:0=定时器是字符间超时定时器,1=定时器是报文定时器。 tmr:0=忽略SMW192,1=超过SMW192中设置的时间时终止接收。 bk:0=忽略break(间断)条件,1=用break条件来检测报文的开始。 报文接收控制字节位用来定义识别报文的标准,报文的起始和结束标准均需定义。 SMB88=报文的起始字符 SMB89=报文的结束字符 SMW90=以ms为单位的空闲线时间间隔。空闲线时间结束后接收到的第一个字符是最新报文的起始字符。 SMW92=字符间/报文间定时值(用ms表示),如果超时停止接收报文。 SMW94=接收最大字符数(1-255),即使不用字符数计算来终止报文,这个值也应按希望的最大缓冲区来设置 四、接收指令的参数设置 RCV指令允许选择报文开始和结束的条件,SMB86-SMB94用于端口0,SMB186-SMB194用于端口1。

串行通讯原理说明--RS232_UART

串行通讯原理说明--RS232,UART电平等介绍 串行通讯:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。 串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。 能够完成上述“串<- ->并”转换功能的电路,通常称为“通用异步收发器” (UART:Universal Asynchronous Receiver and Transmitter), 典型的芯片有:Intel 8250/8251,16550。 EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。 在TxD和RxD上:逻辑1(MARK) =-3V~-15V 逻辑0(SPACE)=+3~+15V 在RTS、CTS、DSR、DTR和DCD等控制线上: 信号有效(接通,ON状态,正电压)=+3V~+15V 信号无效(断开,OFF状态,负电压) = -3V~-15V 数据传输时,低位在前,高位在后 数据位:1位、2位 停止位:1位、1.5位、2位 .流控制在串行通讯中的作用 解决丢失数据的问题 .硬件流控制 硬件流控制常用的有RTS/CTS(请求发送/清除发送)流控制和DTR/DSR(数据终端就绪/ 数据设置就绪)流控制 .软件流控制 一般通过XON/XOFF来实现软件流控制。 奇校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,如: 1 0110,0101 0 0110,0001 偶校验:所有传送的数位(含字符的各数位和校验位)中,“1”的个数为偶数,如: 1 0100,0101

串口通信原理

一、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。串口通信的工作原理请同学们参看教科书。 以下对串口通信中一些需要同学们注意的地方作一点说明: 1、波特率选择 波特率(Boud Rate)就是在串口通信中每秒能够发送的位数(bits/second)。MSC- 51串行端口在四种工作模式下有不同的波特率计算方法。其中,模式0和模式2波特率计算很简单,请同学们参看教科书;模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。 在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。在此模式下波特率计算公式为: 波特率=(1+SMOD)*晶振频率/(384*(256-TH1)) 其中,SMOD——寄存器PCON的第7位,称为波特率倍增位; TH1——定时器的重载值。 在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。 下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。则 TH1=256-62500/波特率 根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。列计数器重载值,通信误差如下表: 因此,在通信中,最好选用波特率为1200,2400,4800中的一个。 2、通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定: 0xA1:单片机读取P0端口数据,并将读取数据返回PC机; 0xA2:单片机从PC机接收一段控制数据; 0xA3:单片机操作成功信息。 在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;当PC机接收到0xA3时,就表明单片机操作已经成功。 3、硬件连接 51单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口

645规约的问题

645-1997规约 645规约的全称应该是“中华人民共和国电力行业标准DL/T 645——1997多功能电能表通信规约”。 这样一个通信规约标准应用于载波集抄系统,是有它的历史原因的! 任何一个标准的出台,与小孩出生一样,必须经历十月怀胎、一朝分娩的痛苦历程。 在上个世纪九十年代,载波集抄系统在中国大地风起云涌的时候,国内、国外没有一个成熟的通信规约可以套用。国家标准的制定者也不是神仙、救世主,他们在没有足够的产品现场运行经验情况下,也无法闭门造车编造出合理的载波集抄系统通信规约!当时正值多功能电能表大面积推广后期,而载波集抄系统的研制、生产也大多脱胎于这些厂家的产品转型。历史就这样造就了645规约暂行于载波集抄系统的环境! 其实就应用对象与使用条件而言,多功能电能表与载波集抄系统几乎是风马牛不相及! 多功能电能表是应用于电力系统动力用户的用电监控(就地监控)、计量装备;而载波集抄系统是应用于居民照明用户的计量设备;根据我国的电力营业管理的相关政策,前者必须顾及电压、电流、功率、需量、有功电能量、无功电能量、正向、反向,以及不同时区、时刻的用电参数;而后者只存在正向有功电能量与底度,在未来的分时计价系统中,无非增加一个分时段电能量问题。 而就数据采集的性质而言,多功能电能表通信规约仅适用于就地数据采集与总线数据采集,甚至可以采用基带数据传输;它与载波集抄系统的串口调制数据传输,完全不是一回事! 就通信环境而言,本地数据采集通信环境稳定、干净、衰减小;而载波通信环境衰减大、干扰严重、不稳定!整个一个大翻个! 645规约在载波集抄系统中的套用,带来的灾难是毁灭性的! 让我们举几个具体条款说明这个问题: 645规约的电能表地址码采用了6字节12位十进制数,最大数为1万亿。设计本意是为了携带厂家名称与产品型号、序列。这对单点的本地数据采集,无论数据传输速率多低,在稳定、干净、衰减小的环境中,都不会形成任何威胁。但对载波信道,由于通信环境衰减大、干扰严重、不稳定,加上国内载波模块大多采用扩频方式提高信道的抗干扰能力,数据传输速率只有300-600波特;再考虑载波通信过程要采集一个变台下数百乃至上千块载波电能表的数据;就是致命的了! 让我们对一块载波电能表的传输过程进行分析:假设正常表号设置只要3个字节,那么每个表号采用6字节,就多传输了3个字节;假设系统

DLT645-1997通信规约解读

DL/T645-1997通信规约解读 该通信规约适用于本地系统中多功能表的费率装置与手持单元(HHU)或其它数据 终端设备进行点对点的或一主多从的数据交换方式,规定了它们之间的物理连接、通信链路及应用技术规范。该协议在做“电力监控”、“水监控”等“工控领域”,具有广泛的应用。协议具体内容可以从网上Google,下面主要介绍下协议的解析方法。 DL645协议需要先发送“前导字节”,用来唤醒从站,当然有些设备是不需要这样唤醒的。在发送帧信息之前,先发送1-4个字节FEH,以唤醒接收方("FEH",H表示16进制,是一个字节), “前导字节” + “取数据报文”=“整体报文”。 首先我们先整体了解一个发送报文“68 12 34 56 78 90 12 68 01 02 43 C3 cs 1 6” 在这之前呢,先看一下BCD码。 BCD码:二进制编码的十进制代码。 比如: 0=0000 1=0001 2=0010 3=0011 4=0100 5=0101 6=0110 7=0111 8=1000 9=1001 BCD码:ASCII表示(都是字符) BCD码都是由0~9,10个字符构成。 也就是说,BCD码一个字节是两位,一位是0~9,一个字节能够表示00~99。 BCD码1位是2进制的4位。按16进制表示,没有ABCDEF。 帧格式(DL/T645-1997通讯规约标准文档中)

帧是传送信息的基本单元。帧格式如图所示。 说 明 代码 帧起始符 68H 地址域 A0 A1 A2 A3 A4 A5 帧起始符 68H 控制码 C 数据长度域 L 数据域 DATA 校验码 CS 结束符 16H 4.2.1 帧起始符68H :标识一帧信息的开始,其值为68H=01101000B 。 4.2.2地址域A0∽A5:地址域由6个字节构成,每字节2位BCD 码。地址长度为12位十进制数,可以为表号、资产号、用户号、设备号等。具体使用可由用户自行决定。当使用的地址码长度不足6字节时,用十六进制AAH 补足6字节。低地址位在先,高地址位在后。当地址为999999999999H 时,为广播地址。 4.2.3 控制码C :控制码的格式如下所示。

串口通信原理

串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波

特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时 也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶

西门子S7-200PLC自由口实例代码

1 引言 为了达到和通讯协议已知的控制设备进行数据交换,以提高自动化控制系统的灵活性,很多plc制造商都相继的开发出了方便、灵活的自由口通讯方式,例如三菱公司的fx2系列plc,omron公司的cjm1系列的plc,西门子公司的s7-200系列plc等都提供了自由口通讯模式。自由口通讯是指plc提供了串行的通讯硬件,和用于定制通讯协议的相关指令,在控制系统中,当要和plc连接的控制设备的通讯协议已知时,可以在plc中进行编程定制通讯协议,和控制设备进行数据通讯。本文主要介绍西门子s7-200的自由口和计算机的串口进行的通讯,计算机中采用visual basic进行编程,从而实现计算机与可编程控制器的直接控制。该通讯方式具有效率高、容易实现、通讯硬件简单、容易配置等特点在工业控制领域中被广泛应用。 2 s7-200通讯指令及特殊字节 采用自由口通讯方式时,s7-200上的rs485口完全由用户控制,可以与任何协议已知的设备进行通讯,在这种情况下通讯协议完全由用户制定,为此,s7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。 2.1 特殊标志字节 s7-200用于自由口通讯模式定义的特殊标志字节有smb30和smb130,smb30用于s7-200的端口0的通讯,smb130用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb130为例,介绍其组成。smb130各位的含义如下: pp:两位用于选择通讯的校验方式当这两位的组合是: 00无校验01 偶校验10 无校验11 奇校验 d:这一位用于选择通讯的数据位数d=1时7个数据位,d=0时8个数据位 bbb:用于选择自由口通讯是的波特率,这三位的组合和通讯波特率的关系如下: 000 ——38400bps 001 ——19200bps 010 ——9600bps 011 ——4800bps 100 ——2400bps

相关文档