粗大浓稠硕大噗嗤噗嗤h,精品人妻码一区二区三区,国产av无码专区亚洲精品,日韩a片无码毛片免费看小说

PLC企業(yè)資訊
    用單片機(jī)實(shí)現(xiàn)閘閥門的開度檢測
    發(fā)布者:wotuofamen  發(fā)布時(shí)間:2011-07-02 11:01:04

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

    關(guān)鍵詞:單片機(jī) 閘閥門 檢測方法

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

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

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

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

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

    (1)分辨率高,最高可達(dá)8192線/轉(zhuǎn)(13位);

    (2)量程大,最高可達(dá)4096轉(zhuǎn)(12位);

    (3)掉電位置保護(hù),無論開度儀掉電多少時(shí)間,系統(tǒng)上電后,ROQ425總能準(zhǔn)確地測量出閘門當(dāng)前的開度。

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

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

    1. 硬件設(shè)計(jì)

    硬件設(shè)計(jì)方案主要實(shí)現(xiàn)

    (1)與ROQ425的SSI連接;

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

    (3)完成輸入串行數(shù)據(jù)(ROQ425 SSI)到輸出4-20mA的轉(zhuǎn)換。

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

    1.1 ROQ425 SSI接口介紹

    ROQ425 SSI接口電壓為5V±5%,空載時(shí)最大電流功耗為250mA。采用差分SN65LBC176線接收/驅(qū)動器進(jìn)行數(shù)據(jù)傳輸,最遠(yuǎn)傳輸距離可達(dá)100m。ROQ425內(nèi)部接口見圖1。

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

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

    1.2 硬件工作原理

    硬件設(shè)計(jì)由SSI接口、I/O接口、單片機(jī)和電源四部分組成。

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

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

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

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

    原理圖如下


    2.軟件設(shè)計(jì)

    通過對AT89C51進(jìn)行編程,達(dá)到實(shí)時(shí)將SSI接口數(shù)據(jù)轉(zhuǎn)換成4-20輸出或通過MODBUS口傳送至PLC系統(tǒng)的目的。主要流程如下:

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

    下面是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數(shù)據(jù)*/

    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.結(jié)束語

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

    版權(quán)聲明PLC信息網(wǎng)轉(zhuǎn)載作品均注明出處,本網(wǎng)未注明出處和轉(zhuǎn)載的,是出于傳遞更多信息之目的,并不意味 著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性。如轉(zhuǎn)載作品侵犯作者署名權(quán),或有其他諸如版權(quán)、肖像權(quán)、知識產(chǎn)權(quán)等方面的傷害,并非本網(wǎng)故意為之,在接到相關(guān)權(quán)利人通知后將立即加以更正。聯(lián)系電話:0571-87774297。
0571-87774297  
欧美 变态 另类 人妖| 精品无码三级在线观看视频| 两个体校校草被c出水| chinese体育生打飞j视频| 精品人伦一区二区三区蜜桃免费| 边做饭边被躁我和邻居的视频| 蜜臀av人妻国产精品| 真实国产乱子伦视频| 五月丁香综合激情六月久久| 亚洲熟妇无码八AV在线播放 | 亚洲综合精品香蕉久久网| 999久久久国产精品| 别揉我奶头~嗯~啊~动漫网站| 久久婷婷国产综合精品| 日本人xxxxxxxxx69| 少妇无力反抗慢慢张开双腿| 精品亚洲麻豆1区2区3区| 爆乳2把你榨干哦ova在线观看| 扒开粉嫩小泬舌头伸进去| 天天想你在线视频免费观看高清版| 欧美与黑人午夜性猛交久久久| 狠狠躁夜夜躁人人爽碰AV| 久久精品国产亚洲7777| 我老婆是冰山女总裁沈浪全集| 亚洲国产精品无码中文在线| 99蜜桃在线观看免费视频网站| 国产精品va在线观看无码不卡| 香港三日本三级少妇三级视频| 推高她的裙子挺身而入| 日本精品一区二区三区四区| 亚洲精品AV一区午夜福利| 亚洲中文久久精品无码ww16| 在线综合亚洲欧洲综合网站| 被多个强壮的黑人灌满浆| 国产亚洲精品久久久久久久软件| 国产乱人激情h在线观看| 国产激情久久久久影院老熟女| 国产特黄级aaaaa片免| 成人国内精品久久久久一区 | 国产50部艳色禁片无码| 99久久国产综合精品麻豆|