在C++Builder环境下实现PLC与计算机的串口通讯-PLC技术网(www.plcjs.com)-可编程控制器技术门户


在C++Builder环境下实现PLC与计算机的串口通讯

 (点击题目可以在互联网中搜索该题目的相关内容)
日期:2006-4-30 10:18:27     来源:本文摘自《PLC&FA》   作者: 点击:
点击【 大  中  小 】, 可 以 选 择 字 体的大小,以便 你 阅读.

1  引言
     可编程序逻辑控制器(PLC)是一台工业控制用微型计算机系统,用以代替传统的继电器控制系统,可靠性高,通用性强,大大减少故障的发生。80年代以来,PLC已经成为电控技术发展趋势,广泛应用于电子、机械、轻工、发电冶金、矿山、石油等工业。在实际工作中,我们要常常解决的问题便是如何实现PLC与个人微机之间的通讯,从而方便有效的通过RLL(PLC梯形图)编程,实现PID控制,BCD输出,或者PWM输出,进行闭环反馈控制。

2   PLC通讯原理
     笔者采用美国IPM公司的IP1612-220PLC,有28个点:16个输入点,和12个输出点,负载能力高达8A,有32个定时器和32个计数器,256个内部继电器和56个数据寄存器,采用VLSI超大规模集成电路最新技术和EEPROM存储器,随机提供IP-EPS软件包。它允许通过外接RS232串行接口对定时器,计数器和内部继电器进行实时读和写访问,除了个人计算机和用来把RLL控制程序输入PLC外,不再需要任何设备。为从PLC中读出一字节数据,只要给它发送变量的代码(地址),PLC就读出该变量的值作为响应,为读出一个双字节数值,使用增加的特殊代码0XE6读两次,其原理分别如图1所示。


图1      PLC和计算机的通讯原理示意图


     如果为写入一个字节到IP1612-220,首先要读出它,然后发送给PLC特殊代码0XFF,跟着送你想写给该变量的新数值,如果为写入双字节数值,需要写2次,其原理分别如图2所示。


图2      双字节数值的通讯原理示意图


3  PLC与计算机的硬件连接
     现在RS232接口的使用已愈来愈广泛,它不仅用于计算机之间的通讯,而且还用于计算机和各种外围设备之间的通讯。因此它是微型机应用系统的一种重要接口。IP1612-220就采用RS232接口,它与计算机之间的接口连线如图3所示。


图3      PLC与计算机之间的接口连线图


4  PLC与计算机在C++Builder环境下的软件实现
     如何用C++Builder来实现PLC与上位机之间的通讯问题?C++Builder是一个基于真正C++语言的RAD开发工具,它将当今最为强劲高效的C++语言和随心所欲的可视化开发完美结合。在C++Builder中,不能够使用Turbo C中的outputb和inputb端口读写函数。但可以有另外一种办法实现这个功能,即通过内嵌汇编语言实现端口的读写。即在C++Builder的单元头文件(*.h)中加入如下代码:
void _fastcall TForm1::OutPort(unsigned short port,unsigned char value)
//port参数为输出端口地址,value参数为输出值
{ asm{
mov dx , port //把端口地址送到处理器DX寄存器中
mov al , value //把value 送到处理器AL寄存器中
out  dx , al  //把AL寄存器中的值送到端口}
}
unsigned char _fastcall TForm1::InPort(unsigned short port)
//port参数为输入端口地址,返回为输入值
{ unsigned char value ;
asm{
mov dx, port //把端口地址送到处理器DX寄存器中
in al, dx 从DX指定端口中将一数据送到AL寄存器中
mov value,al //把AL寄存器中的值赋给value}
return value; //返回端口数据
}
编写好端口读写函数以后,我们必须把PLC与上位机的通讯模式设置成一致。EPS支持串行接口“Com1”到“Com9”。
如果想用通道1,可以用下列命令:
  mode  com1: 1200,n,8,1
然后在C++Builder的单元头文件(*.cpp)中加入如下代码:
void _fastcall TForm1::FormCreate(TObject *Sender)
{outport(0x3f8+3,0x80);//以下是对com1口初始化,
outport(0x3f8+0,0x60);//波特率1200

本新闻共2页,当前在第11 2  

上一篇: 基于LAN/Control Net/Fieldbus分层结构的网络控制系统
下一: 基于ODBC的iFIX工控组态软件与关系数据库Oracle通讯研究