999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python在智能IO模塊上的應(yīng)用

2019-04-17 08:05:00萬偉軍
通信電源技術(shù) 2019年3期
關(guān)鍵詞:按鈕程序智能

萬偉軍

(江蘇聯(lián)合職業(yè)技術(shù)學(xué)院 無錫機(jī)電分院,江蘇 無錫 214000)

0 引 言

目前,工業(yè)網(wǎng)絡(luò)通信程序多采用C#編寫,以實(shí)現(xiàn)上位機(jī)與智能模塊建立的通信。Python語言具備簡(jiǎn)單易懂的編寫模式和功能齊全的擴(kuò)展庫,易于實(shí)現(xiàn)工業(yè)網(wǎng)絡(luò)通信程序的編寫。

1 智能IO模塊的介紹

智能IO模塊采用意法半導(dǎo)體公司的STM32F407為控制核心,可實(shí)現(xiàn)16位輸入信號(hào)采集和7位輸出控制。輸入/輸出電路采用EL357NC進(jìn)行信號(hào)隔離,以保證模塊工作穩(wěn)定。同時(shí),智能IO模塊采用MAX1487芯片實(shí)現(xiàn)串口通信,通過ARM程序?qū)崿F(xiàn)主從設(shè)備間的RS485通信。該智能模塊可代替PLC的基本功能,通過內(nèi)部ARM較靈活的程序開發(fā)功能實(shí)現(xiàn)設(shè)備的智能化,并降低設(shè)備制造成本。

2 Python控制程序的編寫

Python語言具有功能強(qiáng)大的第三方開發(fā)的庫文件,可實(shí)現(xiàn)網(wǎng)絡(luò)通信、界面顯示等功能。Python功能庫中可實(shí)現(xiàn)的Modbus通信協(xié)議有Modbus_tk、Pymodbus及Minimalmodbus。本文使用Modbus_tk庫實(shí)現(xiàn)上位機(jī)與智能模塊間的數(shù)據(jù)交換[1]。

2.1 Modbus_tk庫中的函數(shù)分析

Modbus_tk庫是一個(gè)全功能Modbus的Python擴(kuò)展庫,通過調(diào)用內(nèi)部函數(shù)實(shí)現(xiàn)Modbus通信。Python的Modbus_tk庫函數(shù)與Modbus協(xié)議部分功能碼之間的對(duì)應(yīng)關(guān)系,如表1所示。

通信本質(zhì)上,Modbus是一種串口通信,主從設(shè)備間進(jìn)行通信前必須建立鏈接。使用Modbus_tk庫文件建立通信關(guān)系的程序,如下:

def connect():

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

master=modbus_rtu.RtuMaster(serial.Serial(port= "C OM3 ",baudrate=19200,bytesize=8,parity= "N ",stopbits=1,xo nxoff=0))

master.set_timeout(5.0)

表1 Modbus功能碼與Python的Modbus_tk庫函數(shù)對(duì)照表

master.set_verbose(True)

logger.info( "connected ")

此程序中,通過modbus_rtu.RtuMaster()函數(shù)設(shè)定了串口、波特率及字節(jié)長(zhǎng)度等。執(zhí)行此程序,主從設(shè)備之間建立了通信關(guān)系,后續(xù)程序只需調(diào)用功能函數(shù)就能實(shí)現(xiàn)對(duì)應(yīng)功能[2]。

2.2 輸入信號(hào)檢測(cè)與顯示程序舉例

為實(shí)現(xiàn)輸入信號(hào)的顯示與輸出控制,可使用Python的tkinter進(jìn)行GUI開發(fā)。為實(shí)現(xiàn)輸入信號(hào)顯示與標(biāo)簽,可使用Label控件。程序如下:

photo_r=PhotoImage(f i le= "r.gif ")

photo_y=PhotoImage(f i le= "y.gif ") #加載顯示圖片

lab0=Label(root,text= "X0 ")

lab0.place(x=10,y=10) #創(chuàng)建X0標(biāo)簽文字

label_x0=Label(root,image=photo_y)

label_x0.place(x=10,y=30) #X0無輸入時(shí),顯示黃色指示燈

def input_x(): #輸入檢測(cè)與顯示程序函數(shù)input_x()

connect() #使用connect()函數(shù)建立主從設(shè)備通信鏈接

logger.info(master.execute(1,cst.READ_DISCRETE_INPUTS,0,16))

in_x=master.execute(1,cst.READ_DISCRETE_INPUTS,0,16)

If in_x[0]==1: #判斷X0是否有輸入,有輸入顯示紅燈,沒輸入顯示黃燈

label_x0.conf i g(imag=photo_r) #顯示紅燈

else:

label_x0.conf i g(imag=photo_y) #顯示黃燈

在master.execute(1,cst.READ_DISCRETE_INPUTS,0,16)語句中,master.execute()函數(shù)內(nèi)部參數(shù)的具體含義,如圖1所示。

圖1 master.execute()函數(shù)內(nèi)部參數(shù)的具體含義

模塊地址由每個(gè)智能IO模塊的內(nèi)部ARM設(shè)定。本功能指令是讀取Modbus離散輸入量,讀取地址從0開始,共讀取16位數(shù)據(jù)。為保證實(shí)時(shí)讀取輸入數(shù)據(jù),程序必須間隔一定時(shí)間執(zhí)行input_x()函數(shù)。函數(shù)調(diào)用可采用多線程定時(shí)方式,也可使用Python的APScheduler定時(shí)任務(wù)框架。

2.3 輸出控制程序舉例

為實(shí)現(xiàn)交互界面,輸出控制程序可采用tkinter的Checkbutton控件。控制程序如下:

global y0

y0=IntVar() #創(chuàng)建變量y0

def y_out(): #輸處控制程序函數(shù)y_out()

connect() #使用connect()函數(shù)建立主從設(shè)備通信鏈接

logger.info(master.execute(1,cst.WRITE_SINGLE_COIL,0, output_value=y0.get())

#創(chuàng)建復(fù)選按鈕ck,并設(shè)定其屬性,y0變量存儲(chǔ)復(fù)選按鈕設(shè)定值,同時(shí)調(diào)用y_out函數(shù)

ck=Checkbutton(text= "y0 ",variable=y0,command=y_out)

ck.place(x=10,y=120)

在logger.info(master.execute(1,cst.WRITE_SINGLE_COIL,0,output_value=y0.get()))語 句 中,master.execute()函數(shù)內(nèi)部參數(shù)的具體含義,如圖2所示。

圖2 master.execute()函數(shù)內(nèi)部參數(shù)的具體含義圖

模塊地址由每個(gè)智能IO模塊的內(nèi)部ARM設(shè)定。本功能指令是執(zhí)行Modbus內(nèi)部單線圈狀態(tài)設(shè)定功能。單線圈地址確定了智能IO模塊的輸出口位置,即y0口。單線圈狀態(tài)值由復(fù)選按鈕設(shè)定值決定。復(fù)選按鈕被選中,設(shè)定值為1;復(fù)選按鈕未被選中,設(shè)定值為0。執(zhí)行此程序,當(dāng)Python編寫的GUI界面中的復(fù)選按鈕被選中時(shí),智能IO模塊的y0口導(dǎo)通[3]。

3 結(jié) 論

本文采用Python的Modbus_tk庫實(shí)現(xiàn)智能IO模塊與上位機(jī)之間的數(shù)據(jù)通信,語言簡(jiǎn)潔易懂,且Python擴(kuò)展庫功能強(qiáng)大,可簡(jiǎn)單實(shí)現(xiàn)各種工業(yè)控制功能。

猜你喜歡
按鈕程序智能
這些按鈕能隨便按嗎?
當(dāng)你面前有個(gè)按鈕
試論我國(guó)未決羈押程序的立法完善
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: 无码精品国产VA在线观看DVD| 欧美色香蕉| 亚洲国产成人综合精品2020 | 好久久免费视频高清| 日本在线欧美在线| 亚洲中久无码永久在线观看软件| 欧美精品在线观看视频| 91视频精品| 天天爽免费视频| 91久久偷偷做嫩草影院| AⅤ色综合久久天堂AV色综合 | 国产在线97| 色偷偷一区二区三区| 无码内射中文字幕岛国片 | 亚洲A∨无码精品午夜在线观看| 亚洲国产综合自在线另类| 国产真实二区一区在线亚洲| 亚洲另类国产欧美一区二区| 国产电话自拍伊人| 1024你懂的国产精品| 天天综合天天综合| 香蕉视频在线观看www| 成人在线综合| 亚洲无码高清免费视频亚洲| 亚洲欧洲综合| 久久综合九色综合97婷婷| 亚洲手机在线| 日韩成人在线网站| 亚洲一区第一页| 国产久草视频| 国产探花在线视频| 全免费a级毛片免费看不卡| jizz在线免费播放| 国产黄色免费看| 97人妻精品专区久久久久| 精品久久国产综合精麻豆| 亚洲一区国色天香| 国产一级毛片网站| 免费无码又爽又黄又刺激网站 | 97se综合| 亚洲欧美日韩精品专区| 国产精品无码一区二区桃花视频| 色妞永久免费视频| 日韩一区精品视频一区二区| 亚洲av中文无码乱人伦在线r| 免费日韩在线视频| 日本免费精品| 亚洲日韩国产精品无码专区| 成年人国产视频| 日韩精品欧美国产在线| 丁香六月激情婷婷| 在线亚洲精品自拍| 波多野结衣一区二区三区AV| 亚洲国产成人精品无码区性色| 永久免费无码成人网站| 九色最新网址| 日韩亚洲综合在线| 亚洲综合第一页| 国产精品极品美女自在线| 一级毛片在线播放免费观看| 婷婷丁香在线观看| 亚洲码在线中文在线观看| 国产在线观看成人91| 91毛片网| 欧美国产中文| 成年人免费国产视频| 亚洲精品色AV无码看| 国产精品嫩草影院av| 亚洲成人www| 亚洲欧美激情小说另类| 免费看美女自慰的网站| 日韩欧美中文字幕一本| 亚洲成A人V欧美综合| 欧美中文字幕无线码视频| 亚洲精品大秀视频| 国产成人一区免费观看 | 激情无码字幕综合| 精品国产Av电影无码久久久| 香蕉久久国产精品免| 欧美日韩精品一区二区在线线| 日韩av手机在线| 国产香蕉在线|