你现在位置:首页>技术论文>数据通讯>正文
用C语言实现PLC和上位机的串行通讯
日期:2006-4-25 23:21:07 来源:本文摘自《PLC&FA》  
点击: 作者:未知
点击【】放大字体.

1  原理分析

WWW.PLCJS.COM——可编程控制器技术门户

    本文以三菱MECLEC A系列PLC为例,讨论用C语言实现通讯的方法。
——可——编——程——控-制-器-技——术——门——户

    (1) PLC串行通信
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

    三菱A系列PLC串行通信模式,PLC中有2个RS-232异步通信串行接口,能方便用于双机、多机之间的通信,其通信模式有ASCII和RTU两种方式。ASCII模式下,信息是以冒号(:)字符表示帧的开始,CR(回车)、LF(换行)表示帧的结吏,换行符同时也起同步符作用,表示发送方已准备好接受即时应答。RTU(远程终端设备)模式下,帧的同步模拟同步报文来保持,即以字符间隔时间为起始位,若3.5个字符时间未收到新字符或帧尾,则刷新原值且以下-个接受到的字节为地址进行通信数据的接收。RTU报文的帧结构如表1所示。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

plcjs.技.术_网

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    本文以RTU模式为例加以分析。RTU模式下,采用标准为八个数据位(低位在前,高位在后)1个奇偶校验位和1个停止位。
WWW.PLCJS.COM——可编程控制器技术门户

    (2) UART基本特性分析
WWW_PL※CJS_COM-PLC-技.术_网

    微机实现异步通信是依靠适配器来完成的,而后者又是以UART芯片,即通用异步收发器芯片为核心构成的。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

IBM PC的异步通信适配器使用的UART芯片为INS 8250。它是40引脚双列直插式封装的可编程异步通信接口芯片。现将8250中几个寄存器介绍如下(端口地址仅以COM1为例)
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

a) 线路控制寄存器(端口地址3FB)
WWW_P※LCJS_CO※M-PLC-技-.术_网

此寄存器用来设置通信参数。各位作用如下所示:
WWW_PLCJS@_COM%-PLC-技.术_网

位(Bit)    含义
plcjs.技.术_网

 0 字符长度(低位)
W1WW_P4LCJS_COM-PLC-技.术_网

 1 字符长度(高位)
WWW_PLCJS_COM-PLC-技.术_网

 2 停止位位数
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

 3 奇偶校验允许
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

 4 奇偶性选择
P.L.C.技.术.网——可编程控制器技术门户

 5 固定校验位选择
WWW_PLCJS_COM-PLC-技.术_网

 6 设置停顿
WWW_P※LCJS_CO※M-PLC-技-.术_网

 7 除数寄存器访问位
WW.W_PLC※JS_C,OM-PL,C-技.术_网

寄存器中字长的选择
plcjs.技.术_网

位0 位1 字长
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

 0 0 5
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

 0 1 6
WW.W_PLCJS_COM-PLC-技.术_网

 1 0 7
WWW.PLCJS.COM——可编程控制器技术门户

 1 1 8
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

b) 线路状态寄存器(端口地址3FD)
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

此寄存器用来获得有关接收和发送数据的信息。各位作用如下所示
WWW_PLCJS@_COM%-PLC-技.术_网

位(bit)      置为1时的含义
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

0 字符以接收到且放在接收缓冲寄存器中
WWW_P※LCJS_COM-PLC-)技.术_网

1 接收缓冲寄存器中原有数据在读出之前
WWW_P※LCJS_CO※M-PLC-技-.术_网

 被新来数据破坏
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

2 输入字符奇偶校验错
——可——编——程——控-制-器-技——术——门——户

3 输入字符停止位错
WWW_PLCJS@_COM%-PLC-技.术_网

4 收到停顿信号(BREAK)
WWW_P※LCJS_COM-PLC-)技.术_网

5 UART以准备好接受下一个新的待发送字符
WWW_P※LCJS_CO※M-PLC-技-.术_网

6 待传送字符以发出
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

7 不用
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

c) 除数寄存器(高位字节端口地址3F9,地位字节端口地址3F8)
WWcW_PLCJS_COM-PLC-技.术_网

波特率    十六进制数  低位字节   高位字节
WWW_PLCJS_COM-PLC-技.术_网

2400 60H   0     60
plcjs.技.术_网

4800 18H   0     18
W1WW_P4LCJS_COM-PLC-技.术_网

9600 0CH   0     0C
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

2  应用研究

WWW_PLCJS_COM-PLC-技.术_网

我们在开发低成本集散系统中,研究了PLC与上位机IBM PC486之间的串行通信。
WWW_PLCJS@_COM%-PLC-技.术_网

我们应用的PLC具有模拟量输入和输出以及内嵌PID控制算法等功能。在工程现场,PLC可针对被控制量的变化情况利用内嵌PID控制算法自动完成对调节回路中被控对象的控制。有时上位机需要了解现场参数,并进行PID算法的参数调整,这就要求PLC和上位机之间能进行通信。而数据传送采用的波特率为9600bps,二进制方式。通信口的程序清单如下:
——可——编——程——控-制-器-技——术——门——户

CommIni(int Baud Hi, int Baud Lo,int mode)
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

OutportB(Ox 3fb,Ox,8O);//允许访问除数寄存器,以改变波特率//
WW.W_PLC※JS_C,OM-PL,C-技.术_网

OutportB(Ox 3f8,Baud Lo);//设置波特率低位//
WWW_PL※CJS_COM-PLC-技.术_网

OutportB(Ox 3f9,Baud Hi);//设置波特率高位//
plcjs.技.术_网

OutportB(Ox 3fb,Mode);//设置为读写方式,Mode为1BH时,设置通信口为8个数据位,1个停止位,一个偶校验位//
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

plcjs.技.术_网

通信子程序清单如下:
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

Comm(int IRT,int Comm Num, unsigned char Data[ ])
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

int i, Count, j;
WW.W_PLCJS_COM-PLC-技.术_网

switch(IRT)
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

case 1;
WWW.PLCJS.COM——可编程控制器技术门户

for (I=0; I<Comm Num;I
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

++)
P.L.C.技.术.网——可编程控制器技术门户

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

count=0
WWW_PLCJS@_COM%-PLC-技.术_网

While(((inportB (Ox3fb)&Ox 01)=0) &(count<1000)

本新闻共2页,当前在第11 2  
WWW.PLCJS.COM——可编程控制器技术门户

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行