日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB
關注中國自動化產業發展的先行者!
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

臺達變頻器和C51單片機通訊
  • 企業:中達電通股份有限公司     行業:礦業     領域:機器人    
  • 點擊數:2707     發布時間:2008-04-21 16:35:41
  • 分享到:


摘  要:臺達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所示。





圖1 臺達變頻器通訊字符格式

    (2)臺達變頻器通訊格式的表格描述。臺達變頻器通訊格式的表格描述參見表1。

    表1臺達變頻器通訊格式的表格描述
 

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環境下開發編譯的,調試界面如下:
 

    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 <reg51.h>
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 結束語

    隨著嵌入式技術的飛速發展,單片機與變頻器的通訊設計技術變得越來越有強烈的工程實用意義。在定制化或者客制化應用系統里的單片機與變頻器通訊集成系統不但可以有更加緊湊經濟靈活的體系結構,特別是還有利于形成具有獨立技術特點和獨立知識產權的主權增值產品。

作者簡介:

    劉元剛   中達電通股份有限公司AMD產品處   工程師

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 九九国产在线视频-九九国产在线观看-九九国产在线-九九国产视频-亚洲夜色夜色综合网站-亚洲羞羞视频 | 色综合天天综合网国产国产人-色综合天天综合网国产成人网-色综合天天综合网国产成人-色综合天天综合给合国产-国产成人精彩在线视频50-国产成人禁片在线观看 | 欧美精品综合-欧美精品自拍-欧美精品专区免费观看-欧美精品在线一区二区三区-欧美精品在线一区-欧美精品在线视频观看 | 激情文学综合,美女视频在线观看网站,丁香综合五月,色在线国产,久久亚洲国产欧洲精品一,五月婷婷丁香 | 四虎影视免费在线观看-四虎影视免费在线-四虎影视免费看-四虎影视免费观看免费观看-激情影院在线-激情影院费观看 | 在线观看 一区-在线观看 亚洲-在线观看 日韩-在线观看 免费高清视频-久久婷婷国产一区二区三区-久久婷婷国产五月综合色啪最新韩国 | 夜夜操狠狠操,99在线观看精品免费99,亲爱的妈妈2,色婷婷亚洲十月十月色天,精品福利一区二区在线观看,久久国产精品99精品国产 | 二区乱码综合无码一区二区三-二区女人观看chinese中国真实乱-二区欧美三-二区欧美无遮挡中文字幕人成人-二区啪视频-二区日本成人动漫电影 | 国产一区二区高清,久久亚洲私人国产精品va,日韩精品观看,国产高清美女一级毛片久久,国产区亚洲区,日本久久香蕉一本一道 | 六月婷婷国产精品综合-六六影院午夜伦理-六级黄色片-六度影院最新-最近的2019中文字幕国语完整版-最近的2019中文字幕国语版 | 亚洲六月丁香婷婷综合,久久精品亚洲精品国产欧美,玖玖精品视频在线,国产日本精品,www成人在线观看,精品日产一区二区 | 欧洲免费极品videos-欧洲美女高清一级毛片-欧洲精品欧美精品-欧洲精品不卡1卡2卡三卡四卡-中午字幕在线观看-中文字日产幕码三区的做法大全 | 亚洲A片一区日韩精品无码-亚洲H成年动漫在线观看不卡-亚洲VA欧美VA天堂V国产综合-亚洲VA天堂VA欧美片A在线-亚洲爆乳精品无码AAA片-亚洲不卡高清免v无码屋 | 欧美人成在线视频-欧美人成一本免费观看视频-欧美人xxxxxbbbb-欧美区在线-在线不卡免费视频-在线播放周妍希国产精品 | 久久这里只有精品国产99-久久这里只有精品2-久久这里只有精品1-久久这里只精品热在线99-在线少女漫画-在线涩涩免费观看国产精品 国产精选一区二区-国产精选一区-国产精选污视频在线观看-国产精选91热在线观看-特级黄色视频毛片-特级黄色免费片 | 亚洲第一视频网-亚洲第一色在线-亚洲第一色网站-亚洲第一人黄所-亚洲第一区在线观看-亚洲第一区在线 | 四虎影视免费在线观看-四虎影视免费在线-四虎影视免费看-四虎影视免费观看免费观看-激情影院在线-激情影院费观看 | 国产精品视频你懂的-国产精品视频网-国产精品视频一区二区猎奇-国产精品视频一区二区三区-国产精品视频一区二区三区不-国产精品视频一区二区三区不卡 | 91在线视频在线-91在线视频在线观看-91在线丨亚洲-91在线天堂-91在线无码精品秘 入口91-91在线无码精品秘蜜桃 | 性情网站-性派对交换俱乐部-性派对xxxhd-性派对videos18狂欢-国产中学生-国产中文字幕在线视频 | 久久精品免费电影-久久精品免费-久久精品美乳-久久精品美女视频-亚洲最大福利视频-亚洲综合视频一区 | 色综合天天综合网国产国产人-色综合天天综合网国产成人网-色综合天天综合网国产成人-色综合天天综合给合国产-国产成人精彩在线视频50-国产成人禁片在线观看 | 国产偷抇久久精品A片蜜臀A-国产偷抇久久精品A片蜜臀AV-国产偷抇久久精品A片图片-国产偷窥熟妇高潮呻吟-国产凸凹视频熟女A片-国产玩弄放荡人妇系列 | 九九99国产精品视频-九草在线观看-九草在线-精品综合久久久久久蜜月-亚洲厕所凸轮-亚洲播播 | 亚洲色图网站-亚洲色图图片专区-亚洲色图图片区-亚洲色图图片-精品久久久中文字幕一区-精品久久久中文字幕二区 | 国产精品国产三级大全在线观看-国产精品国产三级囯产av中文-国产精品国产三级国av在线观看-国产精品国产三级国v麻豆-国产精品国产三级国产-国产精品国产三级国产aⅴ | 日韩视频在线免费观看,精品国产电影在线看免费观看,韩国演艺圈一区二区三区,国产欧美在线观看不卡,久久久久亚洲精品美女,精品一区二区三区五区六区七区 | 日本特黄一级-日本特黄特色aa大片免费-日本特黄特色aaa大片免费-日本特黄特黄aaaaa大片-二级特黄绝大片免费视频大片-二级片在线观看 | 视频区国产亚洲.欧美-视频黄色在线-视频国产激情-十九岁日本电影免费粤语高清-久久99九九精品免费-久久99九九国产免费看小说 | 北条麻妃在线观看,国产播放器一区,日本丶国产丶欧美色综合,亚洲一区二区三区高清,九九九国产,亚洲欧美久久精品一区 | 天堂网在线最新版www-天堂网在线资源-天堂网在线看-天堂网在线观看视频-日本精品无码特级毛片-日本精品无码一区二区三区久久久 | 欧洲亚洲日本-欧洲亚洲视频-欧洲亚洲一区-欧洲亚洲一区二区三区-国产精品第九页-国产精品第六页 老司机午夜精品网站在线观看-老司机午夜精品视频在线观看免费-老司机午夜精品视频观看-老司机午夜精品视频播放-一本色道久久88一综合-一本色道久久88综合日韩精品 | 五月天婷婷缴情五月免费观看,久久综合热,高清中国一级毛片免费,国产一级高清免费观看,普通话对白国产精品一级毛片,日韩在线不卡视频 | 麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a | 日韩在线黄色-日韩在线观看精品-日韩在线观-日韩在线高清视频-日韩在线不卡视频-日韩在线播放中文字幕 | 国产高清在线精品一区在线-国产高清在线精品一区二区三区-国产高清在线精品一区a-国产高清在线精品一区-日韩在线a视频免费播放-日韩在线2020专区 | 六月婷婷国产精品综合-六六影院午夜伦理-六级黄色片-六度影院最新-最近的2019中文字幕国语完整版-最近的2019中文字幕国语版 | 伊人色综合久久大香-伊人色综合久久-伊人色综合97-伊人色在线-免费永久在线观看黄网-免费永久国产在线视频 | 2021天天躁狠狠燥,视频在线观看一区,免费理伦片在线观看全网站,国产精品一区二区资源,免费国产成人高清网站app,欧美国产在线观看 | 麻豆系列国产剧在线观看-麻豆系列 在线视频-麻豆午夜视频-麻豆污视频-麻豆网站在线免费观看-麻豆网站在线看 | 精品国产亚一区二区三区,91久久精品国产一区二区,久久精品国产国产精品四凭,91午夜精品亚洲一区二区三区,精品在线看,国产视频资源在线观看 |