基于Modbus樹(shù)莓派控制多臺(tái)變頻器的方法及應(yīng)用實(shí)例

文:張雙馳 潘芝渭2018年第四期

導(dǎo)語(yǔ):

  基于Modbus樹(shù)莓派控制多臺(tái)變頻器的方法及應(yīng)用實(shí)例

  張雙馳  潘芝渭

  金豐(中國(guó))機(jī)械工業(yè)有限公司研發(fā)中心

  摘要:通過(guò)實(shí)例詳細(xì)介紹了樹(shù)莓派擴(kuò)展RS485/GPIO模塊,控制多臺(tái)變頻器的硬件設(shè)置、軟件配置及代碼編制方法。指出這種方法的獨(dú)特優(yōu)點(diǎn)和應(yīng)用前景。

  關(guān)鍵詞:modbus_tk,樹(shù)莓派,匯川變頻器

  1、前言

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

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

  2、系統(tǒng)配置

  圖1硬件配置圖

  硬件配置:

  變頻器:匯川MD380+MD380IO1[1],樹(shù)莓派:3B+RS485/GPIOShieldForRPiV3.0。

  軟件配置:

  修改樹(shù)莓派配置:關(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)入日志文件。

  importserial

  importmodbus_tk

  importmodbus_tk.definesascst

  frommodbus_tkimportmodbus_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")

  importlogging

  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))

  fromlogging.handlersimportTimedRotatingFileHandler

  if__name__=='__main__':

  logFilePath='pzw'

  logger=logging.getLogger('')

  logger.setLevel(logging.INFO)

  handler=TimedRotatingFileHandler(logFilePath,when='s',interval=2,backupCount=5)

  formatter=logging.Formatter('%(asctime)s-%(message)s')

  handler.setFormatter(formatter)

  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-2519: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

  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

  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

  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

  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),編制如下代碼:

  withopen('pzw')asfile_object:

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

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

  foriinrange(n):

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

  iflen(lines[i])>63and(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])>63and(lines[i])[0]=='2':

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

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

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

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

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

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

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

  上述代碼對(duì)n條記錄按照①②特點(diǎn)逐條進(jìn)行判斷,最后用5個(gè)if語(yǔ)句,獲取文件“pzw”中所有滿足條件的記錄,代碼充分展示了python語(yǔ)言強(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í)行非周期命令。流程見(jiàn)圖2,構(gòu)成2秒左右一個(gè)循環(huán)的程序執(zhí)行過(guò)程。

  圖2控制流程

  3.5操作界面

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

  圖3是操作界面,變頻器的輸出頻率由計(jì)數(shù)器控件QSpinBox[2]設(shè)置,點(diǎn)擊右邊的上下箭頭或直接用鍵盤(pá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)過(guò)處理,得到整個(gè)系統(tǒng)設(shè)備的運(yùn)行狀態(tài),在界面顯示出來(lái),再通過(guò)DO/AO輸出開(kāi)關(guān)信號(hào)或模擬信號(hào)(開(kāi)/關(guān)閥,啟/停泵,調(diào)節(jié)閥門(mén)開(kāi)度等),控制其他設(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),而樹(shù)莓派集成了網(wǎng)絡(luò)功能(有線/無(wú)線),實(shí)質(zhì)上起著控制器和網(wǎng)關(guān)的雙重作用。

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

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

  參考文獻(xiàn):

  [1]匯川技術(shù):MD380系列高性能矢量變頻器用戶手冊(cè)V1.4

  [2]王碩、孫洋洋:PyQt5快速開(kāi)發(fā)與實(shí)戰(zhàn),電子工業(yè)出版社,2017.10

  第1作者:張雙馳,男,工程師,自動(dòng)控制產(chǎn)品研發(fā)

  單位:金豐(中國(guó))機(jī)械工業(yè)有限公司研發(fā)中心

  單位地址:浙江省寧波市鎮(zhèn)海經(jīng)濟(jì)開(kāi)發(fā)區(qū)金豐路66號(hào)

  職務(wù):科長(zhǎng)

  手機(jī):15257860915

  第2作者:潘芝渭,男,1947.10,高級(jí)工程師,長(zhǎng)期從事自動(dòng)化產(chǎn)品研發(fā)

  單位:金豐(中國(guó))機(jī)械工業(yè)有限公司研發(fā)中心

  單位地址:浙江省寧波市鎮(zhèn)海經(jīng)濟(jì)開(kāi)發(fā)區(qū)金豐路66號(hào)

  職位:技術(shù)顧問(wèn)

  通訊地址:浙江省寧波市鄞州區(qū)水鄉(xiāng)鄰里花苑11幢28號(hào)604室

  手機(jī):13867087963

  郵箱zjslhb002@163.com

中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

伺服與運(yùn)動(dòng)控制

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

直驅(qū)與傳動(dòng)

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

中國(guó)傳動(dòng)網(wǎng)

關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

2018年第四期

2018年第四期

圖片閱讀

掃碼關(guān)注小程序

時(shí)刻關(guān)注行業(yè)動(dòng)態(tài)

雜志訂閱

填寫(xiě)郵件地址,訂閱更多資訊:

撥打電話咨詢:13751143319 余女士
郵箱:chuandong@chuandong.cn

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺(jué)
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0
往期雜志
  • 2025年第三期

    2025年第三期

    伺服與運(yùn)動(dòng)控制

    2025年第三期

  • 2025年第二期

    2025年第二期

    伺服與運(yùn)動(dòng)控制

    2025年第二期

  • 2025年第一期

    2025年第一期

    伺服與運(yùn)動(dòng)控制

    2025年第一期

  • 2024年第六期

    2024年第六期

    伺服與運(yùn)動(dòng)控制

    2024年第六期

  • 2024年第五期

    2024年第五期

    伺服與運(yùn)動(dòng)控制

    2024年第五期