家家通 | 所有行業 | 所有企業                                          加入家家通,生意很輕松! ·免費注冊 ·登陸家家通 ·設為首頁
關于我們
關于我們
今日加盟
今日加盟
會員中心
會員中心
 
當前位置: 首頁 » 資訊 » 正文

用單片機實現閘閥門的開度檢測

發布日期:2011-07-02 11:01:04  瀏覽次數:313

摘要:PLC以其固有的特性,在閘閥門智能化處理中得到了廣泛的應用。解決好PLC與閘閥門開度檢測裝置間的數據傳輸接口是實現閘閥門高效、可靠、安全運行的關鍵。雖然,PLC提供SSI輸入模塊,但這類模塊價格太高,需要配置專用電纜和處理軟件。利用單片機實現與閘閥門開度檢測裝置(SSI)的輸入接口,實現串行數據轉換成并行數據與PLC數值量輸入模塊連接的輸出接口。這樣既降低了成本,又簡化了PLC的編程。

關鍵詞:單片機 閘閥門 檢測方法

閘閥門開度檢測裝置在淮安三線船閘工程中,是實現閘閥門安全、高效和智能化運行的主要設備之一。該檢測裝置運用主要目的為:

(1)在閘閥門啟閉操作時,用于實時指示閘閥門的開度位置,以利于操作員及時掌握閘閥門的運行情況;

(2)閘閥門開度參與閘閥門的運行控制,如使閥門開啟至任意設定開度,實時監視閥門在這一設定開度時的下滑情況,并根據閥門下滑至不同關鍵位置時,立即采取相應的處理措施。

(3)控制左右人字閘門同步運行與平穩變速運行。

ROQ425是德國海德漢(HENDENHAIN)的(13位+12位)絕對編碼器。特別適合于高精度、大量程閘閥門行程測量和控制的場合,是構成閘閥門檢測裝置的主要部件。具有如下主要特點:

(1)分辨率高,最高可達8192線/轉(13位);

(2)量程大,最高可達4096轉(12位);

(3)掉電位置保護,無論開度儀掉電多少時間,系統上電后,ROQ425總能準確地測量出閘門當前的開度。

(4)數據輸出接口,采用串行同步接口(SSI)傳輸數據。

PLC以其固有的特性,在閘閥門智能化處理中得到了廣泛的應用。解決好PLC與閘閥門開度檢測裝置間的數據傳輸接口是實現閘閥門高效、可靠、安全運行的關鍵。雖然,PLC提供SSI輸入模塊,但這類模塊價格太高,需要配置專用電纜和處理軟件。利用單片機實現與閘閥門開度檢測裝置(SSI)的輸入接口,實現串行數據轉換成并行數據與PLC數值量輸入模塊連接的輸出接口。這樣既降低了成本,又簡化了PLC的編程。

1. 硬件設計

硬件設計方案主要實現

(1)與ROQ425的SSI連接;

(2)與PLC模擬量輸入模塊和MODBUS口的連接;

(3)完成輸入串行數據(ROQ425 SSI)到輸出4-20mA的轉換。

(4)完成輸入串行數據(ROQ425 SSI)通過MODBUS口輸出到PLC

1.1 ROQ425 SSI接口介紹

ROQ425 SSI接口電壓為5V±5%,空載時最大電流功耗為250mA。采用差分SN65LBC176線接收/驅動器進行數據傳輸,最遠傳輸距離可達100m。ROQ425內部接口見圖1。

ROQ425是多圈絕對型旋轉編碼器,每圈用13位表示精度,用12位記錄圈數。因此,開度絕對位置值采用25位字長表示。數據發送時序關系見圖2,其工作原理為:

  • 不發送數據時,CLOCK為高電平。
  • 數據發送過程:當ROQ425接收到CLOCK發送周期(nT)的第一個下降沿時,ROQ425讀取25位字長的絕對位置值存入數據緩存器。數據緩存器中數據隨著CLOCK發送周期的上升沿串行同步發送數據,第一個發出的數據位是絕對位置值的第25位(MSB),最后一個發出的數據位是絕對位置值的第1位。
  • 中斷數據發送:在數據發送過程中,當CLOCK為高電平時間超過t3(35us)時,ROQ425終止當前數據發送周期,為下一個重新開始的發送周期做好準備。
  • 數據重發:當完成一個絕對位置值的數據字發送周期后,DATA維持t3時間的低電平。若在t3(12~35us)內,CLOCK開始一個新的發送周期,就會重發剛才發送的絕對位置值數據。

1.2 硬件工作原理

硬件設計由SSI接口、I/O接口、單片機和電源四部分組成。

(1)SSI接口選用ROQ425推薦的RS422接口芯片MAX488。

(2)I/O接口采用光電耦合器隔離,DA模塊采用AD7541和AD694。MODBUS接口模塊采用MAX232E。

(3)單片機選用高性能的AT89C51(單字長指令、定時/計數器、看門狗)

(4)選用24VDC輸入5VDC輸出和24VDC輸入15VDC輸出的DC/DC模塊電源。

原理圖如下


2.軟件設計

通過對AT89C51進行編程,達到實時將SSI接口數據轉換成4-20輸出或通過MODBUS口傳送至PLC系統的目的。主要流程如下:

  • 第一步 :初始化設置。包括串口設置,中斷設置,PLC地址的設置,零點設置等
  • 第二步:讀取ROQ425數據并轉換成十進制
  • 第三步:將轉換過的數據通過并口和串口輸出
  • 第四步:重復第二步

下面是AT89C51的部分源程序:

#include <reg51.h>

#include <stdio.h> /* define I/O functions */

#include <absacc.h> /* define absacc functions */

#include <STDLIB.h> /* define absacc functions */

#include <intrins.h> /*#define uchar unsigned char*/

#define _Nop() _nop_()

typedef unsigned int word;

typedef unsigned char byte;

typedef unsigned long dword;

static word data da,db,dc,df,p,crc1,cir,high;

static dword data da1,db1,dc1,df1,dd,de,max,zero,zero2,dcb;

static byte data show[7],show1[4],show2[4],sendm[8],s[4],bb[4];

static byte data dd1,watch,kk,t[1],dd2[1];

code byte disp[16]={0x77,0x41,0x3b,0x6b,0x4d,0x6e,0x7e,0x43,0x7f,0x6f,0x5f,0x7c,0x36,0x79,0x3e,0x1e};

void readgray();/*讀取ROQ425數據*/

void delay();

void i_start();

void i_stop();

void i_init();

void i_send(byte);

void display();

void change(dword);

void change1(dword);

void setzero();

void zero1();

void nub();

void addr();

void cir1();

void e_start();

void e_stop();

void e_send(byte);

byte e_recevie();

void e_ack(bit);

void e_send1(dword);

bit isend(byte,byte,byte *,byte);

bit ireceive(byte,byte,byte *,byte);

void watchdog();

void one();

void two();

void three();

void one1();

void two1();

void three1();

void pos();

void res();

void comsend(byte);

word crc16(byte *);

byte shj();

void main()

{

register i,j,k,x;

bit d;

dcb=0;

show[0]=0x70;

show[1]=0x00;

show[2]=0x27;

display();

for (i=0;i<4;i++)

{

show1[i]=0;

show2[i]=0;

}

SCON=0xc8;/*采用方式3 */

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

ET1=0;

ES=0;

EA=0;

high=0x07;

max=8000;

dd1=0;

sda1=1;

delay();

sda1=0;

dd2[0]=0;

while(1)

{

for (j=0;j<4;j++)

{

for (x=0;x<8;x++)

{

zero2*=2;

z=(bit)(show2[j]&0x80);

if (z==1)

zero2++;

show2[j]=show2[j]<<1;

}

}

zero=zero2;

p=0;

watchdog();

txd=1;

readgray();

watchdog();

dd=da & 0x0fff;

de=db & 0x1fff;

dc1=dd*8192+de;

P0=dc1 & 0x000000ff;//(dc1 & 0x000001fe)>>1;

P2=(dc1 & 0x00000f00)>>8;//(dc1 & 0x00001e00)>>9;

if(t[0]==1)

{

if((zero>=0)&&(zero<=10000000))

one();

else

if((zero>10000000)&&(zero<=33390591))

two();

else

three();

}

else

{

if((zero>=0)&&(zero<=10000000))

one1();

else

if((zero>10000000)&&(zero<=33390591))

two1();

else

three1();

}

sendm[0]=0x06;

sendm[1]=0x06;

sendm[2]=0x00;

sendm[3]=0x05;

sendm[4]=dc1/256;

sendm[5]=dc1%256;

crc1=crc16(sendm);

sendm[6]=crc1 / 256;

sendm[7]=crc1 & 0xff;

rd=1;

for(i=0;i<8;i++)

{

ACC=sendm[i];

TB8=par;

comsend(sendm[i]);

}

watchdog();

display();

}//end while

}//end main

3.結束語

采用上述方法實現PLC與閘閥門開度檢測裝置之間的連接。不僅具有成本低、PLC編程簡單的特點,而且具有高可靠性。



 
推薦企業
熱門產品

機電之家網 - 機電行業權威網絡宣傳媒體

關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 會員助手 | 免費鏈接

Copyright 2011 jdzj.com All Rights Reserved技術支持:杭州濱興科技股份有限公司

客戶服務熱線:0571-87774297
網站經營許可證:浙B2-20080178 浙B2-20080178-4


經營性網站備案信息 ICP經營
許可證
營業執照(副本) 不良信息舉報中心
主站蜘蛛池模板: 国产精品欧美亚洲韩国日本| 色偷偷亚洲综合网亚洲| 日本精品久久久久中文字幕8| 亚洲综合无码无在线观看| 美女免费网站xx美女女女女女女bbbbbb毛片| 国产成人一区二区三区在线观看 | 啦啦啦在线免费视频| 黄视频免费下载| 小兔子救了蛇被蛇两根进去| 久久精品人人爽人人爽快| 欧美日韩亚洲国产无线码| 免费国产一级特黄久久| 老子午夜伦费影视在线观看| 国产在线19禁免费观看| 2021年国产精品久久| 日本三级片网站| 亚洲a级黄色片| 欧美肥老太肥506070| 国产在线一区观看| 18末成年禁止观看试看一分钟| 天天做天天爱夜夜想毛片| 中国嫩模一级毛片| 日本久久久久亚洲中字幕| 亚洲Aⅴ在线无码播放毛片一线天| 欧美精品一区二区久久| 你是我的城池营垒免费观看完整版 | 久久AV高潮AV无码AV| 欧美性bbwbbw| 亚洲片在线观看| 男人j桶进女人p| 农村老熟妇乱子伦视频| 色www视频永久免费男的天堂| 国产大秀视频一区二区三区| 2018在线观看| 国产精品手机在线亚洲| 91精品国产三级在线观看| 夜色福利久久久久久777777| 一区二区三区中文字幕| 成人午夜精品视频在线观看| 久久99精品久久久久久动态图 | 国产免费变态视频网址网站|