產(chǎn)品分類
  • 上海自動(dòng)化儀表一廠
    壓力變送器
    差壓變送器
    微差壓變送器
    精小型壓力變送器
    擴(kuò)散硅壓力變送器
    單法蘭壓力變送器
    雙法蘭液位變送器
    節(jié)流裝置
  • 上海自動(dòng)化儀表三廠
    熱電偶
    熱電阻
    端面熱電阻
    耐磨耐腐熱電偶
    電廠電站熱電偶
    耐磨耐腐熱電阻
    雙金屬溫度計(jì)
    一體化溫度變送器
    非接觸式溫度儀表
    儀表套管
    防爆熱電阻
    防爆熱電偶
    裝配式熱電偶
    法蘭式電熱偶
    鎧裝熱電阻
  • 上海自動(dòng)化儀表四廠
    普通壓力表
    不銹鋼壓力表
    電接點(diǎn)壓力表
    特種壓力表
    雙針雙管壓力表
    精密壓力表
    隔膜壓力表
    膜片壓力表
    壓力表校驗(yàn)器
    活塞壓力計(jì)
    數(shù)字壓力表
    電感壓力變送器
  • 上海自動(dòng)化儀表五廠
    翻板液位計(jì)
    物位計(jì)
    浮筒液位送器
    液位控制器
    壓力表
    張力計(jì)
  • 上海自動(dòng)化儀表六廠
  • 上海自動(dòng)化儀表七廠
    閘閥
    截止閥
    止回閥
    球閥
    蝶閥
    安全閥
    調(diào)節(jié)閥
    電動(dòng)閥門
    氣動(dòng)閥門
    電磁閥
    旋塞閥
    減壓閥
    疏水閥
    水力控制閥
    針型閥
    襯氟閥門
    襯膠閥門
    銅閥門
    真空閥門
    排泥閥,排污閥
    排氣閥
    過(guò)濾器
    氨用低溫閥門
    氧氣閥門
  • 上海自動(dòng)化儀表九廠
    電磁流量計(jì)
    渦街流量計(jì)
    渦輪流量計(jì)
    金屬管浮子流量計(jì)
    刮板流量計(jì)
    流量計(jì)附件
    腰輪流量計(jì)
  • 上海自動(dòng)化儀表十一廠
    電動(dòng)執(zhí)行機(jī)構(gòu)
    執(zhí)行機(jī)構(gòu)配件
    雙波紋管差壓計(jì)
  • 上海大華儀表廠
    XMT數(shù)顯調(diào)節(jié)儀
    中圓圖平衡記錄儀
    大圓圖自動(dòng)平衡記錄儀
    XWF中長(zhǎng)圖記錄儀
    EL小長(zhǎng)圖記錄儀
    EH中長(zhǎng)圖記錄儀
    記錄儀配件
    無(wú)紙記錄儀
    熱量顯示儀
  • 上海遠(yuǎn)東儀表廠
    壓力控制器
    差壓控制器
    高壓控制器
    流量控制器
    微壓/微差壓控制器
    溫度控制器
    浮球液位控制器
  • 上海轉(zhuǎn)速表廠
    標(biāo)準(zhǔn)轉(zhuǎn)速發(fā)生裝置
    轉(zhuǎn)速傳感器
    轉(zhuǎn)速表
    轉(zhuǎn)速數(shù)字顯示儀
    轉(zhuǎn)速記錄儀
    接近開關(guān)
    轉(zhuǎn)換器
    轉(zhuǎn)速變送器
    手持式離心轉(zhuǎn)速表
    手持式離心轉(zhuǎn)速表
  • 上海自動(dòng)化儀表有限公司
    調(diào)節(jié)控制器
    壓力變送器
    智能數(shù)顯儀
    蝶閥
    孔板流量計(jì)
  • 電感壓力變送器
  • 單/雙法蘭差壓(液位)變送器
新聞詳情

淺析MOdbus協(xié)議的玻璃管液位計(jì)模塊計(jì)更高商用價(jià)值

來(lái)源:上海自儀股份作者:上海自動(dòng)化儀表網(wǎng)址:http://www.shhzy3.cn

摘 要:

描述于Modbus協(xié)議設(shè)計(jì)了一種玻璃管液位計(jì)模塊設(shè)計(jì),對(duì)這一模塊中的RS485接口電路進(jìn)行了介紹。分析了這一玻璃管液位計(jì)模塊設(shè)計(jì)的通信方式,對(duì)內(nèi)部程序進(jìn)行了介紹,并進(jìn)行了輸入輸出測(cè)試。將所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì)應(yīng)用于十字滑臺(tái)電氣控制,取得了良好的效果。

    1   設(shè)計(jì)背景
    傳統(tǒng)玻璃管液位計(jì)系統(tǒng)中,常用可編程序控制器控制步進(jìn)驅(qū)動(dòng)器或伺服驅(qū)動(dòng)器,進(jìn)而實(shí)現(xiàn)運(yùn)動(dòng)控制。但是,可編程序控制器較難實(shí)現(xiàn)復(fù)雜的運(yùn)動(dòng)軌跡控制。隨著嵌入式技術(shù)日趨完善,各類ARM處理器在
玻璃管液位計(jì)中被廣泛應(yīng)用。筆者應(yīng)用ARMSTM32F407芯片,基于Modbus協(xié)議設(shè)計(jì)了一種玻璃管液位計(jì)模塊設(shè)計(jì)[1-2]。這一模塊具有數(shù)字量輸入采集、數(shù)字量輸出控制和高速脈沖輸出功能,能夠通過(guò)內(nèi)部程序來(lái)控制步進(jìn)驅(qū)動(dòng)器或伺服驅(qū)動(dòng)器,實(shí)現(xiàn)復(fù)雜的運(yùn)動(dòng)軌跡控制。

    2   硬件設(shè)計(jì)
    所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì)結(jié)構(gòu)如圖1所示,采用ARMSTM32F407芯片作為控制核心,應(yīng)用MAX485芯片實(shí)現(xiàn)RS485通信[3],應(yīng)用EL357芯片實(shí)現(xiàn)輸入信號(hào)和輸出信號(hào)的隔離[]。這一玻璃管液位計(jì)模塊設(shè)計(jì)可以接收16位開關(guān)型輸入信號(hào),控制7路輸出,能夠?qū)崿F(xiàn)4路高速脈沖控制。

1.jpg

    2.1RS485接口電路
    所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì)有兩路RS485通信接口。RS485接口電路采用MAX485芯片,如圖2所示。電路不發(fā)送數(shù)據(jù)時(shí),TXD1為高電平,三極管Q1導(dǎo)通,RE為低電平使能,RO端接收數(shù)據(jù),MAX485芯片處于接收狀態(tài)。電路發(fā)送數(shù)據(jù)時(shí),TXD1由高電平變?yōu)榈碗娖?,時(shí)間長(zhǎng)短與通信速率有關(guān),三極管Q1截止,MAX485芯片處于發(fā)送狀態(tài)。

2.jpg


    2.2輸入輸出口
    輸入信號(hào)電路如圖3所示。EX0為玻璃管液位計(jì)模塊設(shè)計(jì)的開關(guān)量輸入信號(hào)端。EX0輸入信號(hào)經(jīng)過(guò)電路處理后,產(chǎn)生輸出信號(hào)X0。X0接ARMSTM32F407芯片的引腳,為玻璃管液位計(jì)模塊設(shè)計(jì)內(nèi)部程序提供輸入信號(hào)。采用EL357芯片完成外部設(shè)備輸入信號(hào)與ARMSTM32F407芯片接口信號(hào)之間的隔離,提高模塊的抗干擾能力。

3.jpg

    輸出信號(hào)電路如圖4所示。SignalY0為ARMSTM32F407芯片引腳所產(chǎn)生的輸出信號(hào)。SignalY0信號(hào)經(jīng)過(guò)電路處理后,變?yōu)椋希酰簦?信號(hào)。OutY0信號(hào)連接輸出驅(qū)動(dòng)電路,產(chǎn)生實(shí)際的輸出控制信號(hào)。輸出端也采用EL357芯片進(jìn)行信號(hào)隔離。

4.jpg

    2.3   高速脈沖信號(hào)
    所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì),其高速脈沖信號(hào)直接由ARMSTM32F407芯片生成,通過(guò)接線端子與外部電路相連。

    3   通信方式
    這一玻璃管液位計(jì)模塊設(shè)計(jì)基于Modbus協(xié)議的遠(yuǎn)程終端(RTU)模式設(shè)計(jì),按客戶端模式進(jìn)行工作。上位機(jī)包括觸摸屏、工控機(jī)等,可以發(fā)送0X01~0X04指令,使輸入端口(X端口)、輸出端口(Y端口)的狀態(tài)數(shù)據(jù)反饋至上位機(jī)。上位機(jī)也可以使用0X05、0X06、0X0F和0X10指令實(shí)現(xiàn)輸出端口通斷控制和模塊內(nèi)部寄存器數(shù)據(jù)設(shè)定功能。上位機(jī)與模塊之間的數(shù)據(jù)通信采用串口通道接發(fā)數(shù)據(jù)幀來(lái)實(shí)現(xiàn)。每一個(gè)指令都有特定的符合Modbus協(xié)議的數(shù)據(jù)幀格式,數(shù)據(jù)幀采用Hex編碼。

    4   軟件設(shè)計(jì)
    所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì),其內(nèi)部程序可以分為四部分———系統(tǒng)初始化、數(shù)據(jù)接收、數(shù)據(jù)分析與執(zhí)行、數(shù)據(jù)反饋,其中系統(tǒng)初始化包括端口初始化和通信口初始化[5-7]。

  內(nèi)部程序結(jié)構(gòu)如圖5所示。
  模塊通電后,自動(dòng)進(jìn)入系統(tǒng)初始化程序,初始化ARMSTM32F407芯片各引腳狀態(tài),讀取芯片存儲(chǔ)數(shù)據(jù),恢復(fù)至前一次斷電前狀態(tài)。同時(shí)完成模塊的通信參數(shù)設(shè)置,如將傳輸速率設(shè)置為19200bit/s等,并開始連續(xù)監(jiān)聽通信口,等待上位機(jī)發(fā)送控制指令。當(dāng)上位機(jī)發(fā)送控制指令數(shù)據(jù)幀后,模塊讀取數(shù)據(jù)幀。接收數(shù)據(jù)幀后,通過(guò)循環(huán)冗余校驗(yàn)碼判斷數(shù)據(jù)是否有效。如果無(wú)效,那么程序返回通信口監(jiān)聽狀態(tài)。如果接收數(shù)據(jù)有效,那么對(duì)數(shù)據(jù)的地址進(jìn)行判斷。如果發(fā)送來(lái)的地址與模塊設(shè)置的地址不相同,那么程序返回通信口監(jiān)聽狀態(tài)。如果發(fā)送來(lái)的地址與模塊設(shè)置的地址相同,那么模塊程序?qū)Πl(fā)送來(lái)的數(shù)據(jù)幀進(jìn)行數(shù)據(jù)分析與提取,對(duì)比模塊內(nèi)部芯片內(nèi)存中的指令庫(kù),按對(duì)比結(jié)果執(zhí)行相應(yīng)的功能。執(zhí)行功能完成后,模塊程序?qū)?zhí)行結(jié)果數(shù)據(jù)通過(guò)通信口以數(shù)據(jù)幀的格式反饋至上位機(jī)。

5.jpg

    5   測(cè)試
    ModbusPoll是一種基于Modbus協(xié)議的服務(wù)端模擬器[8],可以作為上位機(jī)測(cè)試和調(diào)試客戶端,支持遠(yuǎn)程終端模式、美國(guó)信息交換標(biāo)準(zhǔn)碼,以及傳輸控制協(xié)議和網(wǎng)際協(xié)議[9]。筆者將ModbusPoll作為上位機(jī)對(duì)所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì)進(jìn)行測(cè)試。模塊接線如圖6所示,通過(guò)這一接線,可以實(shí)現(xiàn)兩路輸入信號(hào)采集和中間繼電器控制。

6.jpg


    5.1   輸入測(cè)試
  二線制傳感器和三線制傳感器都處于工作狀態(tài)時(shí),模塊的X0端口和X1端口有高電平輸入。其余X2~X15端口都處于低電平狀態(tài)。此時(shí),使用ModbusPoll的TestCenter界面輸入數(shù)據(jù)幀01020000001079C6。其中,01為模塊地址,02表示讀取X端口狀態(tài)指令,0000表示讀取端口起始地址,即X0端口地址,0010表示一次性讀取16位X端口狀態(tài),79C6為循環(huán)冗余校驗(yàn)碼[10]。接收到以上數(shù)據(jù)幀,模塊在執(zhí)行0X02指令后返回?cái)?shù)據(jù)幀01020203B948,其中,01為模塊地址,前一個(gè)02表示X端口狀態(tài)指令,后一個(gè)02表示兩個(gè)字節(jié),03表示X0和X1端口有信號(hào),B948為循環(huán)冗余校驗(yàn)碼。

    5.2   輸出測(cè)試
    模塊控制中間繼電器KA1線圈通電時(shí),使用ModbusPoll的TestCenter界面輸入數(shù)據(jù)幀01050000FF008C3A,Y0端口輸出高電平,其余Y1~Y6端口為低電平,模塊返回?cái)?shù)據(jù)幀01050000FF008C3A。返回的數(shù)據(jù)幀中,01為模塊地址。05表示執(zhí)行0X05指令,即控制單個(gè)輸出端口。0000表示控制端口為Y0,如需要控制Y1,則數(shù)據(jù)幀為0001,依次類推。FF00表示設(shè)置端口為有輸出,如果需要設(shè)置端口為無(wú)輸出,則數(shù)據(jù)幀為0000。8C3A為循環(huán)冗余校驗(yàn)碼。執(zhí)行Y0輸出指令后,中間繼電器KA1線圈得電,其觸點(diǎn)狀態(tài)發(fā)生改變。如果模塊控制KA1線圈失電,則所發(fā)送的數(shù)據(jù)幀為010500000000CDCA。

    5.3   高速脈沖控制
    當(dāng)需要有高速脈沖時(shí),上位機(jī)使用0X06或0X10指令設(shè)置數(shù)據(jù)。發(fā)送和接收數(shù)據(jù)的過(guò)程與使用0X02、0X05指令過(guò)程類似,此處不再詳述。

    6   應(yīng)用案例
    應(yīng)用所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì)進(jìn)行十字滑臺(tái)電氣控制,電氣控制原理如圖7所示。將所設(shè)計(jì)的玻璃管液位計(jì)模塊設(shè)計(jì)作為核心控制器件,采集十字滑臺(tái)傳感器信號(hào)、按鈕信號(hào),控制步進(jìn)驅(qū)動(dòng)器,進(jìn)而完成對(duì)步進(jìn)電機(jī)的控制。十字滑臺(tái)X軸、Y軸的前后端限位傳感器信號(hào)與模塊的X0、X1、X2、X3輸入端口相連,防止滑臺(tái)機(jī)械行程超限。-S1啟動(dòng)按鈕和-S2停止按鈕與模塊的X16、X17輸入端口相連,為模塊提供啟動(dòng)和停止信號(hào)。模塊的Y0輸出端口與十字滑臺(tái)X軸步進(jìn)驅(qū)動(dòng)器的EN+端相連,控制軸步進(jìn)驅(qū)動(dòng)器工作。模塊的Y1輸出端口與十字滑臺(tái)Y軸步進(jìn)驅(qū)動(dòng)器的EN+端相連,控制Y軸步進(jìn)驅(qū)動(dòng)器工作。模塊的A_DIR和A_PUL高速脈沖輸出端口向X軸步進(jìn)驅(qū)動(dòng)器提供控制信號(hào),實(shí)現(xiàn)十字滑臺(tái)X軸的運(yùn)動(dòng)控制。模塊的D_DIR和D_PUL高速脈沖輸出端口向Y軸步進(jìn)驅(qū)動(dòng)器提供控制信號(hào),實(shí)現(xiàn)十字滑臺(tái)Y軸的運(yùn)動(dòng)控制。模塊具有兩路RS485通信總線,一路與觸摸屏相連。通過(guò)觸摸屏,可以設(shè)置步進(jìn)驅(qū)動(dòng)器的X軸、Y軸行程,實(shí)時(shí)顯示X軸和Y軸前后端傳感器狀態(tài)、電機(jī)運(yùn)行距離、運(yùn)行次數(shù)等參數(shù)。通過(guò)觸摸屏上的啟動(dòng)和停止按鈕,能夠控制十字滑臺(tái)啟動(dòng)和停止。另一路RS485通信總線可與其它設(shè)備相連,用于實(shí)現(xiàn)功能擴(kuò)展。

7.jpg

 進(jìn)行十字滑臺(tái)電氣控制時(shí),點(diǎn)擊觸摸屏上的啟動(dòng)按鈕或按下-S1按鈕,玻璃管液位計(jì)模塊設(shè)計(jì)根據(jù)觸摸屏設(shè)定的軌跡來(lái)控制單個(gè)步進(jìn)驅(qū)動(dòng)器或協(xié)調(diào)控制兩個(gè)步進(jìn)驅(qū)動(dòng)器實(shí)現(xiàn)十字滑臺(tái)的復(fù)雜軌跡運(yùn)行。點(diǎn)擊觸摸屏上的停止按鈕或按下-S2按鈕,玻璃管液位計(jì)模塊設(shè)計(jì)通過(guò)內(nèi)部程序使十字滑臺(tái)停止運(yùn)行。

    7   結(jié)束語(yǔ)
    筆者應(yīng)用ARMSTM32F407芯片,基于Modbus協(xié)議設(shè)計(jì)了一種玻璃管液位計(jì)模塊設(shè)計(jì)。ARMSTM32F407芯片具有強(qiáng)大的邏輯運(yùn)算能力,通過(guò)編寫不同程序能快速實(shí)現(xiàn)出入與輸出之間復(fù)雜的邏輯控制,適用于較為煩瑣的控制場(chǎng)合。通過(guò)十字滑臺(tái)電氣控制應(yīng)用案例分析,以上設(shè)計(jì)的玻璃管液位計(jì)方案設(shè)計(jì)具有較高商用價(jià)值?!?nbsp;     
本文主要描述了玻璃管液位計(jì)http://www.3500123.cn//如需下載請(qǐng)標(biāo)明此處