當(dāng)前位置:機(jī)電之家首頁 >> 電工園地>> 應(yīng)用案例 >> 變頻器應(yīng)用 >> 基于Modbus樹莓派控制多臺(tái)變頻器的方法及應(yīng)用實(shí)例
基于Modbus樹莓派控制多臺(tái)變頻器的方法及應(yīng)用實(shí)例

1 前言

推出樹莓派產(chǎn)品的初衷是用于教育,它只有一個(gè)40腳的串行端口GPIO,直接應(yīng)用它,只能做一些實(shí)驗(yàn)和簡(jiǎn)單的工程應(yīng)用。今在GPIO上擴(kuò)展RS485/GPIO模塊,使它具有Modbus通訊能力,就可以實(shí)時(shí)控制變頻器,從而開發(fā)出具有實(shí)用價(jià)值的工程項(xiàng)目。

圖1是某沖床群控系統(tǒng)部分框圖,介紹如下。

2 系統(tǒng)配置

圖1硬件配置圖


硬件配置:


變頻器:匯川MD380+MD380IO1[1],樹莓派:3B+RS485/GPIOShield For RPi V3.0。


軟件配置:


修改樹莓派配置:關(guān)閉藍(lán)牙,關(guān)閉控制臺(tái),使串口專用于Modbus通訊。操作系統(tǒng):Linux,編程軟件:python_3.4.2,通訊軟件:Modbus_tk_0.5.4,界面編程軟件:pyqt5

3代碼編制

3.1配置 Modbus_tk

    設(shè)置modbus_rtu通訊模式,設(shè)置通訊參數(shù):9600,8N1。讀取變頻器參數(shù)后,需要將數(shù)據(jù)存放在內(nèi)存,以便后續(xù)處理,為此導(dǎo)入日志文件。

import serial

import modbus_tk

import modbus_tk.defines as cst

from modbus_tk import modbus_rtu

PORT="/dev/ttyAMA0"

logger=modbus_tk.utils.create_logger('console')

master=modbus_rtu.RtuMaster(serial.Serial(port=PORT,baudrate=9600,bytesize=8,

parity='N',stopbits=1,xonxoff=0))

master.set_timeout(0.5)

master.set_verbose(True)

logger.info("connected")

import logging

3.2分割日志文件

讀取的變頻器運(yùn)行數(shù)據(jù)存放在日志文件中,隨著時(shí)間的推移,文件變得日益龐大,最后使系統(tǒng)癱瘓,因此,需要對(duì)日志文件進(jìn)行分割,所謂分割,就是保留一部分記錄,其余拋棄,達(dá)到瘦身目的。有2種分割方法①按文件大小分割②按時(shí)間間隔分割,本例按方法②分割,每2秒分割一次,最多保留5個(gè)文件。

下面的代碼讀取1#變頻器起始地址為7000H的12個(gè)數(shù)據(jù),存放在名稱為“pzw”的日志文件中(分割后的日志文件及備份小于0.2MB),和程序文件放在同一文件夾內(nèi)。

logger.info(master.execute(1,cst.READ_HOLDING_REGISTERS,28672,12))

from logging.handlers import TimedRotatingFileHandler

if __name__=='__main__':

logFilePath='pzw'

logger=logging.getLogger('')

logger.setLevel(logging.INFO) handler=TimedRotatingFileHandler(logFilePath,       when='s',interval=2,backupCount=5)

bbbbatter=logging.bbbbatter('%(asctime)s-%(message)s')

handler.setbbbbatter(bbbbatter)

logger.addHandler(handler)

              

3.3 處理日志文件

為了準(zhǔn)確獲取5臺(tái)變頻器的參數(shù),需要對(duì)日志文件“pzw”進(jìn)行分析:

2018-05-2519:42:11,200--> 1-3-112-0-0-12-95-15

2018-05-25 19:42:11,306-<-1-3-24-0-0-14-16-16-232-0-0-0-0-0-0-0-0-0-0-0-0-1-252-1-240-0-134-87-101< p="">

2018-05-2519:42:11,395-(0, 3600, 4328, 0, 0, 0, 0, 0, 0, 508, 496, 134)

2018-05-2519:42:11,396--> 2-3-112-0-0-12-95-60

2018-05-2519:42:11,485-<- 2-3-24-0-0-10-140-15-127-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-135-13-10

2018-05-2519:42:11,527-(0, 2700, 3967, 0, 0, 0, 0, 0, 0, 0, 0, 135)

2018-05-2519:42:11,528--> 3-3-112-0-0-12-94-237

2018-05-2519:42:11,614-<-3-3-24-0-0-10-240-15-217-0-0-0-0-0-0-0-0-0-0-0-0-0-2-0-1-0-32-7-88< p="">

2018-05-2519:42:11,655-(0, 2800, 4057, 0, 0, 0, 0, 0, 0, 2, 1, 32)

2018-05-2519:42:11,656--> 4-3-112-0-0-12-95-90

2018-05-2519:42:11,743-<-4-3-24-0-0-13-72-12-7-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-4-33-208-137< p="">

2018-05-2519:42:11,834-(0, 3400, 3079, 0, 0, 0, 0, 0, 0, 0, 0, 1057)

2018-05-2519:42:11,835--> 5-3-112-0-0-12-94-139

2018-05-2519:42:11,923-<-5-3-24-0-0-10-200-11-252-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-1-4-33-182-98< p="">

2018-05-2519:42:11,965-(0, 2760, 3068, 0, 0, 0, 0, 0, 0, 0, 1, 1057)

發(fā)現(xiàn):①每條記錄去掉頭部日期時(shí)間后,第1個(gè)字符就是變頻器的站號(hào)②含有變頻器參數(shù)的記錄的字符數(shù)遠(yuǎn)大于其他記錄,根據(jù)這2個(gè)特點(diǎn),編制如下代碼:

with open( 'pzw') as file_bbbbbb:

lines=file_bbbbbb.readlines()     #逐行讀文件,存到表lines中

n=len(lines)                       #獲取表的長度

for i inrange(n):                 

lines[i]=(lines[i])[27:]        #截取表第27項(xiàng)到末尾,保存到表

iflen(lines[i])>63 and (lines[i])[0]=='1':#判斷站號(hào)和是否是數(shù)據(jù)

abc1=lines[i]                #存放到表abc1中

a1=abc1[7:]                  #截取表abc1第7項(xiàng)到末尾,保存到表a1   

b1=a1.split('-')             #以‘-’為分隔符將字符串分割為新的表

u0_00_1=str(float(int(b1[0])*256+int(b1[1]))/100)   #變頻器輸出頻率

self.l1_1.setText(u0_00_1+' Hz')                    #標(biāo)簽顯示

................

u0_11_1=str((int(b1[22])*256+int(b1[23]))/4)        #pt100左軸承溫度

self.l7_1.setText(u0_11_1+' ℃')

iflen(lines[i])>63 and (lines[i])[0]=='2':

..................

iflen(lines[i])>63 and (lines[i])[0]=='3':

..................

if len(lines[i])>63and (lines[i])[0]=='4':

.................

if len(lines[i])>63 and (lines[i])[0]=='5':

...................................

上述代碼對(duì)n條記錄按照①②特點(diǎn)逐條進(jìn)行判斷,最后用5個(gè)if語句,獲取文件“pzw”中所有滿足條件的記錄,代碼充分展示了python語言強(qiáng)大的表處理能力,是整個(gè)應(yīng)用程序的核心。

3.4 獲取變頻器參數(shù)值

上述矩形框內(nèi)代碼的作用是:對(duì)滿足條件①②的記錄進(jìn)一步處理:拋棄前端7個(gè)字符(例1-3-24-)后余下26個(gè)字節(jié)就是變頻器參數(shù)值和校驗(yàn)碼,按表1即可編制讀數(shù)程序[1

表1:

3.5 程序結(jié)構(gòu)

“啟動(dòng)”“停車”“調(diào)速”等控制信號(hào)是非周期命令,讀取變頻器參數(shù)和顯示數(shù)據(jù)是周期命令,為此,采用主線程-子線程結(jié)構(gòu)模式。定義2個(gè)計(jì)時(shí)器模塊QTimter[2],各定時(shí)2秒,在定時(shí)器1期間執(zhí)行周期讀數(shù)命令,在定時(shí)器2期間,執(zhí)行非周期命令。流程見圖2,構(gòu)成2秒左右一個(gè)循環(huán)的程序執(zhí)行過程。

圖2 控制流程

3.6 操作界面

圖3 人機(jī)界面(局部)

圖3是操作界面,變頻器的輸出頻率由計(jì)數(shù)器控件QSpinBox[2]設(shè)置,點(diǎn)擊右邊的上下箭頭或直接用鍵盤敲入數(shù)字,可方便的進(jìn)行設(shè)置。圖2數(shù)據(jù)分別是:輸出頻率,運(yùn)行電流,DI狀態(tài),DO狀態(tài),AI1、AI2、AI3。

4 研發(fā)體會(huì)和展望

讀取變頻器DI/AI信號(hào)(故障,流量,溫度等),經(jīng)過處理,得到整個(gè)系統(tǒng)設(shè)備的運(yùn)行狀態(tài),在界面顯示出來,再通過DO/AO輸出開關(guān)信號(hào)或模擬信號(hào)(開/關(guān)閥,啟/停泵,調(diào)節(jié)閥門開度等),控制其他設(shè)備。充分利用這些端口,相當(dāng)于增加了一臺(tái)具有:50個(gè)DI,25個(gè)DO,15個(gè)AI和10個(gè)AO的小型PLC,具體用法因篇幅所限本文不再介紹[1]。

物聯(lián)網(wǎng)三層體系結(jié)構(gòu)中,PLC必須借助網(wǎng)關(guān)才能連接到外網(wǎng),而樹莓派集成了網(wǎng)絡(luò)功能(有線/無線),實(shí)質(zhì)上起著控制器和網(wǎng)關(guān)的雙重作用。

Yeebbbb是國內(nèi)目前最大的物聯(lián)網(wǎng)云平臺(tái),它免費(fèi)為公眾提供云服務(wù),通過Yeebbbb提供的App接口,進(jìn)行相關(guān)的開發(fā),即可實(shí)現(xiàn)產(chǎn)品遠(yuǎn)程監(jiān)控。

樹莓派應(yīng)用于工程項(xiàng)目,無論是產(chǎn)品成本還是控制能力,都具有極大的實(shí)用價(jià)值和良好的開發(fā)前景。

作者:未知 點(diǎn)擊:1279次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:基于Modbus樹莓派控制多臺(tái)變頻器的方法及應(yīng)用實(shí)例
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《基于Modbus樹莓派控制多臺(tái)變頻器的方法及應(yīng)用實(shí)例》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
關(guān)于“基于Modbus樹莓派控制多臺(tái)變頻器的方法及應(yīng)用實(shí)例”的更多資訊

電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購

張雪根 【求購】  固體除垢劑  2025-11-26
趙經(jīng)理 【求購】  變壓器  2025-11-26
羅經(jīng)理 【求購】  巡邏車跟蹤...  2025-11-26
趙經(jīng)理 【求購】  柴油發(fā)電機(jī)  2025-11-26
沈雙 【求購】  柴油過濾紙  2025-11-26
陳經(jīng)理 【求購】  濰柴船用發(fā)...  2025-11-26
 【求購】  移動(dòng)電源  2025-11-25
陳經(jīng)理 【求購】  螺旋槳  2025-11-24
VIP公司推薦