佳工机电网 在线工博会 我的佳工网 手机版 English
关键字  
  选择展区 >>
您的位置: 首页 > 工业自动化展区 > 变频器展厅 > 产品库 > 技术论文 > 正文 产品库 会展 人才 帮助 | 注册 登录  
变频器
 按行业筛选
 按产品筛选
查看本类全部文章
e展厅 产品库 最新动态 技术文章 企业目录 资料下载 视频/样本 反馈/论坛
  技术应用 | 基础知识 | 外刊文摘 | 业内专家 | 文章点评 投稿 发表科技文章 
台达变频器和C51单片机通讯
作者:中达电通股份有限公司AMD产品处 刘元刚
欢迎访问e展厅
展厅
2
变频器展厅
矢量变频器, 变频调速设备, ...
摘 要:台达VFD全系列变频器均能够通过通讯进行参数的读写和控制,随着单片机功能的越来越强大,在嵌入控制中的应用更加的广泛。如何实现单片机和变频器之间的通讯是本文的介绍重点。同时本文给出了单片机和变频器通讯的硬件电路图和通讯源程序C51,有助于读者掌握台达变频器在嵌入式系统的通讯应用技术。
关键词:变频器 C51 单片机

1 引言

台达VFD全系列变频器和C51单片机通讯采用串行异步原理。通讯速度用波特率表示。波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如,数据传送的速率是120字符/s,而每个字符如上述规定包含10数位,则传送波特率为1200波特。通讯方向:在串行通讯中,把通讯接口只能发送或接收的单向传送方法叫单工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。
8051单片机串行异步通讯的方式用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如下:在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符,则字符可以一个接一个地传送。在异步通讯中,CPU与外设之间必须有两项规定,即字符格式和波特率。字符格式的规定是双方能够在对同一种0和1的串理解成同一种意义。原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII标准。

2 通讯约规

2.1 台达VFD变频器通讯约规

(1)台达变频器通讯字符格式。台达变频器通讯字符格式有ASCII和RTU格式,如图1所示。

newmaker.com

newmaker.com

newmaker.com
图1 台达变频器通讯字符格式

(2)台达变频器通讯格式的表格描述。台达变频器通讯格式的表格描述参见表1。

表1台达变频器通讯格式的表格描述
newmaker.com

3 单片机通讯设计

3.1 C52单片机的串行接口结构

8051串行接口是一个可编程的全双工串行通讯接口。它可用作异步通讯方式(UART),与串行传送信息的外部设备相连接,或用于通过标准异步通讯协议进行全双工的8051多机系统也可以通过同步方式,使用TTL或CMOS移位寄存器来扩充I/O口。8051单片机通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界通讯。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。

台达变频器接受的RS485信号,单片机输出的是TTL电平。因此要变频器和单片机通讯要有通讯转换芯片,目前常用的RS485芯片有MAX485、MAX483,S75176等。在本例子中采用了MAX485和S75176芯片,同时电路图中预留了RS232电路的接口,方便单片机以RS232通讯方式和其他外设进行通讯。主单片机采用ATMEL公司的AT89C52单片机。

3.2 软件调试界面

单片机程序通过在KEIL环境下开发编译的,调试界面如下:

newmaker.com

3.3通讯源程序

/*********************************************************
* 本程序是AT89C52单片机和台达B系列、M系列、L系列、F系列通讯例子.
* 通讯协议ASCII格式,帧格式为“1位起始位、7位数据、奇偶位(或无)、结束位”共10位.
* 台达VFD系列变频器一帧的通讯格式:第0位:“:”起始位;第1,2位:站号地址.
* 第3,4位:功能号码;第5,6,7,8位:写入的地址;第9,10,11,12位:传输数据.
* 第13,14位:校验码;第15,116位:停止0X0D,0X0A.
* 该程序通过向2000H地址写入0012H数据来启动变频器;向2000H地址写入0012H数据来停止变频器.
* 由P1.0来控制MCU发送数据,P2来控制通讯指示灯.*
* 编译环境:KEIL V3.30
* 作者:刘元刚
* 部门:中达电通股份有限公司AMD产品处
* 编写时间:2008.1.8
* 修改时间:
* 修改内容:
**********************************************************/
#include
char send[17]={0};
char send1[8]={0x01,0x06,0x01,0x00,0x17,0x70,0x86,0x22};
char count;
int temp;
bit motor_flag=0;
/*********ASCII格式变量定义**********/
char number ; //设备站号
char function ; //功能
char address_h; //地址高
char address_l; //地址低
char data_h ;//数据
char data_l ;//数据
char CRC_H; //校验
char CRC_L; //校验
char send_temp;
int sum_temp;
/*
函数ASCII()实现了台达变频器通讯协议转换为ASCII协议格式的功能。
*/
void ASCII(void);
/*
init_serial()函数串行通讯初始化函数
实现了:波特率的设定,定时器的选择,发送模式的选择
*/
void init_serial(void);
//函数ASCII7N2()以数据格式 7,N 2方式发送数据
void ASCII7N2(void);
//函数ASCII7O1()以数据格式 7,O 1方式发送数据
void ASCII7O1(void);
//函数ASCII7E1()以数据格式 7,E 1方式发送数据
void ASCII7E1(void);

main()
{
init_serial();
/***********VFD系列变频器通讯资料初始化*****/
number=0x01;
function=0x06;
address_h=0x20;
address_l=0x00;
data_h=0X00;
data_l=0x12;
/******************************************/
while(1)
{
if(P1!=0XFF)
{
for(temp=0;temp<3000;temp++)//延时一段时间
{;}
if(P1!=0XFF)
{
P2=0;
TI=0;
ASCII();//发送数据的处理

ASCII7N2();//以通讯协议为ASCII 9600,7,N,2发送数据
ASCII7O1();//以通讯协议为ASCII 9600,7,O,1发送数据
ASCII7E1();//以通讯协议为ASCII 9600,7,E,1发送数据

for(temp=0;temp<10000;temp++)
//发送完数据之后延时一段时间
{;}
for(temp=0;temp<10000;temp++)
{;}
motor_flag=~motor_flag; //完成了变频器启动和停止之间的切换
if(motor_flag==1){data_l=0x11;}
else{data_l=0x12;}
P1=0XFF;
P2=0XFF;
}
}
}
}
/*******************************************************************************
******
函数nop名称:void init_serial(void)
函数功能:
参数列表:
返回值 :
影响资源:
实现过程:
********************************************************************************
*****/
void init_serial(void)
{
SCON=0x40;//工作在方式1,
TMOD=0x20;
TH1=0xFD; //波特率为9600,晶振11.0592MHZ
TL1=0xFD;
TR1=1;//启动定时器1
P1=0XFF;
}

void ASCII7N2(void)
{
for(count=0;count<17;count++)
{
SBUF=send[count]|0X80;
while(TI==0);
TI=0;
}
}
void ASCII7O1(void)
{
for(count=0;count<17;count++)
{
temp=0;
ACC=send[count]&0X7F;
send_temp=ACC;
temp=P;
send_temp=(temp<<7)|send_temp;
SBUF=send_temp;
while(TI==0);
TI=0;
}
}
void ASCII7E1(void)
{
for(count=0;count<17;count++)
{
temp=0;
ACC=send[count]&0X7F;
send_temp=ACC;
temp=~P;
send_temp=(temp<<7)|send_temp;
SBUF=send_temp;
while(TI==0);
TI=0;
}
}
/*******************************************************************************
函数nop名称:void ASCII(void) 该函数应该作精简,可以考虑用结构来实现目前仅仅是测试版本
函数功能:
参数列表:
返回值 :
影响资源:
实现过程:
*******************************************************************************/
void ASCII()
{
send[0]=0x3A;
send[1]=((number&0xF0)>>4)+0x30;
if(send[1]>0x39)(send[1]=(send[1]-0x39)+0x40);
send[2]=((number&0x0F)+0x30);
if(send[2]>0x39)(send[2]=(send[2]-0x39)+0x40);
send[3]=((function&0xF0)>>4)+0x30;
if(send[3]>0x39)(send[3]=(send[3]-0x39)+0x40);
send[4]=((function&0x0F)+0x30);
if(send[4]>0x39)(send[4]=(send[4]-0x39)+0x40);
send[5]=((address_h&0xF0)>>4)+0x30;
if(send[5]>0x39)(send[5]=(send[5]-0x39)+0x40);
send[6]=((address_h&0x0F)+0x30);
if(send[6]>0x39)(send[6]=(send[6]-0x39)+0x40);
send[7]=((address_l&0xF0)>>4)+0x30;
if(send[7]>0x39)(send[7]=(send[7]-0x39)+0x40);
send[8]=((address_l&0x0F)+0x30);
if(send[8]>0x39)(send[8]=(send[8]-0x39)+0x40);
send[9]=((data_h&0xF0)>>4)+0x30;
if(send[9]>0x39)(send[9]=(send[9]-0x39)+0x40);
send[10]=((data_h&0x0F)+0x30);
if(send[10]>0x39)(send[10]=(send[10]-0x39)+0x40);
send[11]=((data_l&0xF0)>>4)+0x30;
if(send[11]>0x39)(send[11]=(send[11]-0x39)+0x40);
send[12]=((data_l&0x0F)+0x30);
if(send[12]>0x39)(send[12]=(send[12]-0x39)+0x40);
sum_temp=number+function+address_h+address_l+data_h+data_l;
sum_temp=(~sum_temp)+1 ;
send[13]=((sum_temp&0xF0)>>4)+0x30;
if(send[13]>0x39)(send[13]=(send[13]-0x39)+0x40);
send[14]=((sum_temp&0x0F)+0x30);
if(send[14]>0x39)(send[14]=(send[14]-0x39)+0x40);
send[15]=0x0D;
send[16]=0X0A;
}

4 结束语

随着嵌入式技术的飞速发展,单片机与变频器的通讯设计技术变得越来越有强烈的工程实用意义。在定制化或者客制化应用系统里的单片机与变频器通讯集成系统不但可以有更加紧凑经济灵活的体系结构,特别是还有利于形成具有独立技术特点和独立知识产权的主权增值产品。(end)
文章内容仅供参考 (投稿) (如果您是本文作者,请点击此处) (4/18/2008)
查看更多变频器相关文章: more
·台达变频器多泵恒压供水应用及电机切换问题 中达电通股份有限公司 刘一 (4/16/2008)
·纺织行业变频器需求分析和应用解决方案 艾默生工业自动化 孟辉 (4/14/2008)
·艾默生EV1000变频器输出脉冲频率信号Y2在AB PLC中的应用 (4/9/2008)
·小功率变频器的结构建模及利用PRO/CABLING模块的三维线缆布置 时代新纪元科技集团 刘玉芬 (4/3/2008)
·艾默生EV1000在2万吨电炉炼锌电极深度测量中的应用 昆明优利佳科技 刘希贤 (4/3/2008)
·贝加莱控制系统在纺丝设备上的应用 贝加莱工业自动化有限公司 (3/29/2008)
·正弦变频器在直进式拉丝机上的应用 深圳市正弦电气有限公司 (3/28/2008)
·多电机变频控制系统在短纤维后纺设备中的应用 宁波捷创技术有限公司 李方园 (3/19/2008)
·中达自动化方案在外圆磨床上的高效应用 中达电通股份有限公司 甄鑫 (3/19/2008)
·粗纱机变频控制应用方案 中船重工集团718所 马洪 (3/17/2008)
查看相关文章目录:
·工业自动化展区 > 变频器展厅 > 变频器文章
文章点评 查看全部点评 投稿 进入贴吧


对 变频器 有何见解?请到 变频器论坛 畅所欲言吧!


网站简介 | 企业会员服务 | 广告服务 | 服务条款 | English | Showsbee | 会员登录  
© 1999-2024 newmaker.com. 佳工机电网·嘉工科技