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

在VB6.0編程語言下實(shí)現(xiàn)對PLC輸出的控制

2017-08-11 23:20:10孫琦君
職業(yè)技術(shù) 2017年8期
關(guān)鍵詞:按鈕程序

孫琦君

(天津職業(yè)技術(shù)師范大學(xué),天津 300000)

?

在VB6.0編程語言下實(shí)現(xiàn)對PLC輸出的控制

孫琦君

(天津職業(yè)技術(shù)師范大學(xué),天津 300000)

本文通過一個(gè)實(shí)際例子說明在VB6.0下利用串口通信實(shí)現(xiàn)對PLC輸出端口Y的控制。在VB6.0中想實(shí)現(xiàn)串口通信一定要掌握MSComm通信控件的參數(shù)設(shè)置方法,傳送過程中使用十六進(jìn)制數(shù)據(jù)。由于單擊置位或復(fù)位按鈕,產(chǎn)生一個(gè)二進(jìn)制數(shù)據(jù),最后轉(zhuǎn)換為ASCII碼,最后驅(qū)動(dòng)PLC輸出。

PLC VB6.0;串口通信;二進(jìn)制

0 引言

通過在VB6.0編程語言下進(jìn)行編程,就可以直接實(shí)現(xiàn)對三菱PLC輸出的直接控制,同時(shí)不需要編寫三菱PLC內(nèi)部程序。在VB6.0程序界面內(nèi)指定輸出元件的地址,單擊置位命令按鈕,設(shè)置指定輸出元件端口的狀態(tài)為ON,使線路中三菱PLC輸出指示燈亮;單擊復(fù)位命令按鈕,設(shè)置指定輸出元件端口的狀態(tài)為OFF,使線路中三菱PLC輸出指示燈滅。

要想實(shí)現(xiàn)這樣控制,首先要知道三菱PLC如何和電腦PC進(jìn)行通信的。三菱PLC和PC進(jìn)行通信,可以使用通信口,也可以使用編程口。兩者區(qū)別是通過編程口,PC只能和一臺PLC通信,訪問方式為間接是;通過通信口,PC可以和多臺PLC通信,訪問方式為直接,二者所使用的為不同的通信協(xié)議。

本實(shí)例所用PC和三菱FX2N系列PLC通過編程電纜連接起來,形成一套開關(guān)量輸出控制系統(tǒng),如圖1所示。在圖1中,PC的串口COM1通過SC-09編程電纜與三菱FX2N 32MR的編程口連接起來,通過外接的指示燈來顯示PLC輸出狀態(tài)。

1 VB6.0程序界面設(shè)計(jì)

外部接線圖完成后,現(xiàn)在要完成的工作是在VB6.0編程語言中程序界面的設(shè)計(jì)。首先在VB6.0中要添加一個(gè)MSComm通信控件,用來實(shí)現(xiàn)PC與PLC的串口通信;然后為了置位,再添加8個(gè)CommandButton按鈕控件;然后為了復(fù)位,再添加8個(gè)CommandButton按鈕控件;最后再添加1個(gè)CommandButton按鈕控件,完成關(guān)閉程序任務(wù)。

界面設(shè)計(jì)好,現(xiàn)在要對程序窗體、控件對象的主要屬性按表1進(jìn)行設(shè)置。

2 程序設(shè)計(jì)

①定義窗體級變量

從程序中發(fā)出的開關(guān)量信號的狀態(tài)值在多個(gè)過程中使用,所以首先要定義一個(gè)窗體級變量。

Dim a1#,b1#,c1#,d1#,e1#,f1#,g1#,h1#

圖1 PC與FX2NPLC外部接線圖

控件類型主要屬性功能Form(名稱)=PLCDOForm窗體控件(名稱)=PLC開關(guān)量輸出窗體標(biāo)題欄顯示程序名稱CommandButton(名稱)=Cmdz0(0)~Cmdz0(7)按鈕數(shù)組控件Caption=置位Y0~Y7置指定地址端口為ONCommandButton(名稱)=Cmd1(0)~Cmd1(7)按鈕數(shù)組控件(Caption=復(fù)位Y0~Y7置指定地址端口為OFFCommandButton(名稱)=Cmdquit按鈕控件,關(guān)閉程序Caption=關(guān)閉按鈕標(biāo)簽MSComm(名稱)=MSComm1串口通信控件在程序中設(shè)置串口參數(shù)設(shè)置

②通信串口初始化

定義窗體級變量后,想實(shí)現(xiàn)PC與PLC之間串口通信,第一步要完成的工作是進(jìn)行串口初始化,設(shè)置端口號、收發(fā)數(shù)據(jù)類型、打開串口,這些內(nèi)容在Form-Load()事件過程中編寫程序。

PC與三菱PLC串口通信使用COM1。利用MSComm控件中CommPort屬性來設(shè)置端口號;

MSComm1. CommPort=1

PC與三菱PLC的通信參數(shù)必須保護(hù)絕對一致,波特率設(shè)置為9600、偶校驗(yàn)、數(shù)據(jù)位7、停止位1。這些利用MSComm控件中Settings屬性來設(shè)置。

MSComm1. Settings=“9600,E,7,1”

在這個(gè)傳送過程中發(fā)送指令為十六進(jìn)制編碼數(shù)據(jù),這要將MSComm控件中InputMode屬性值設(shè)定為1.

MSComm1. InputMode=1

③從PLC獲得各個(gè)端口的狀態(tài)值

在VB6.0程序設(shè)計(jì)界面中,通過單擊按鈕的方式來產(chǎn)生置位和復(fù)位開關(guān)信號;在程序設(shè)計(jì)界面中有2個(gè)按鈕數(shù)組,通過判斷按鈕數(shù)組Cmdz0的索引號來設(shè)置PLC的輸出端口置位,通過判斷按鈕數(shù)組Cmd1的索引號來設(shè)置PLC的輸出端口復(fù)位。

Private Sub Cmdz0_Click(Index As Integer) Private Sub Cmd1_Click(Index As Integer)

If Index=0 Then a1=1 If Index=0 Then a1=0

If Index=1 Then b1=1 If Index=1 Then b1=0

If Index=2 Then c1=1 If Index=2 Then c1=0

If Index=3 Then d1=1 If Index=3 Then d1=0

If Index=4 Then e1=1 If Index=4 Then e1=0

If Index=5 Then f1=1 If Index=5 Then f1=0

If Index=6 Then g1=1 If Index=6 Then g1=0

If Index=7 Then h1=1 If Index=7 Then h1=0

Call send_date Call send_date

End Sub End Sub

④按下按鈕,發(fā)出指令,讓輸出各個(gè)端口置位或復(fù)位

在本例中,要發(fā)送的輸出端口Y狀態(tài)值不是一個(gè)固定值,而是由單擊打控制按鈕而產(chǎn)生一個(gè)隨機(jī)值。由于隨機(jī)值的存在,在控制程序中反映狀態(tài)值的數(shù)據(jù)部分和累加和部分只能用變量來表示,其余部分是固定數(shù)據(jù),在串口通信中指令表達(dá)式為“02 31 30 30 41 30 30 32 data1 data2 data3 data4 data5 data6”,在編寫程序的關(guān)鍵就是想辦法得到這六個(gè)變量值:data1 data2 data3 data4 data5 data6。

通過下面程序可以得到指令中輸出端口狀態(tài)數(shù)據(jù)變量data1 data2 data3 data4 。

Private Sub send_data()

Dim send_d As String

Dim hexnum(5) As Integer

Dim data1,data2,data3,data4 As Variant

send_d=h1&g1&f1&e1&d1&c1&b1&a1

For i=1 To Len(send_d)

a=a+CLng(MidMYM(send_d,i,1))*2^CLng(Len(send_d)-i)

Next i

if a<16 Then

hexstr =0&Hex(a)

End If

if a>16 Or a=16 Then

hexstr =Hex(a)

End If

hexmum(1)=Hex(Asc(Mid(hexstr,1,1)))

hexmum(2)=Hex(Asc(Mid(hexstr,1,1)))

data1="&H"&hexnum(1)

data2="&H"&hexnum(2)

data3="&H"&"30"

data4="&H"&"30"

……

End Sub

通過上面這一段程序,將單擊按鈕數(shù)組所產(chǎn)生的狀態(tài)值用二進(jìn)制來表示,同時(shí)把這二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成十六進(jìn)制數(shù),再把十六進(jìn)制數(shù)轉(zhuǎn)換成ASCII碼值,只保留可以反映輸出端口狀態(tài)的高字節(jié),低字節(jié) 固定為00。

利用下面程序得到累加和的數(shù)據(jù)變量data5和data6。

Private Sub send_data()

……

Dim checknum(5) As String

Dim data5,data6 As Variant

addnum=Hex(&H31+&H30+&H30+&H41+&H30+&H30+&H32+data1+data2+data3+data4+&H3)

checkdata=Right(addnum,2)

checknum(1)=Hex(Asc(Mid(checkdata,1,1)))

checknum(2)=Hex(Asc(Mid(checkdata,1,1)))

data5="&H"&checknum(1)

data6="&H"&checknum(2)

……

End Sub

通過上面這一段程序,完成取累加數(shù)后2位,分別將每位轉(zhuǎn)成ASCII碼值。要想編程語言中發(fā)出控制指令,必須使用MSComm控件中Output屬性來發(fā)送指令,可以將PLC的輸出端口Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7置1,同時(shí)將外面的指示燈點(diǎn)亮;也可以將PLC的輸出端口Y0、Y1、Y2、Y3、Y4、Y5、Y6、Y7置0,同時(shí)將外面的指示燈熄滅。實(shí)現(xiàn)上面控制程序如下:

Private Sub send_data()

……

MSComm1.Output=Chr(&H2)&Chr(&H31)&Chr(&H30)&Chr(&H30)&Chr(&H41)&Chr(&H30)&Chr(&H30)&Chr(&H32)&Chr(data1)&Chr(data2)&Chr(data3)&Chr(date4)&Chr(&H3)&Chr(data5)&Chr(data6)

End Sub

最后,通信完成后,通過下面程序退出。

Private Sub Cmdquit_Click()

MSComm1.PortOpen=False

Unload Me

End Sub

3 編程完成后,系統(tǒng)運(yùn)行測試

完成外部硬線安裝,做好程序界面設(shè)計(jì),調(diào)試完成,運(yùn)行程序,程序運(yùn)行的界面如圖2所示:

圖2 VB程序運(yùn)行界面

在圖2所示程序界面當(dāng),按下置位按鈕,讓指定輸出繼電器Y狀態(tài)為ON,外部連接對應(yīng)指示燈就亮;按下復(fù)位按鈕,讓指定輸出繼電器Y狀態(tài)為OFF,外部連接對應(yīng)指示燈就滅;按下關(guān)閉按鈕,則退出程序。

[1]李江全編. PLC開關(guān)量與通信控制應(yīng)用實(shí)例講解[M].北京:電子工業(yè)出版社,2011.

[2]李江全著. 三菱FX系列PLC數(shù)據(jù)通信及測控應(yīng)用 [M]. 北京:電子工業(yè)出版社,2012.

[3]李金城編著. PLC模擬量與通信控制應(yīng)用實(shí)踐[M].北京:電子工業(yè)出版社,2011.

[4]李江全編著. PLC模擬量與通信控制應(yīng)用實(shí)踐詳解 [M].北京:電子工業(yè)出版社,2014.

(編輯 趙欣宇)

The Control of the PLC Output in Programming Language of VB6.0

SUN Qijun

(Tianjin University of Technology and Education, Tianjin 300000, China)

This paper illustrates the control of the PLC output port Y by using serial port communication in VB6.0. In VB6.0, that implement the serial port communication needs to control the parameter settings of MSComm control, using hexadecimal data in the transfer process. Because of the click or reset button, a binary data is produced, which is converted to ASCII and eventually drives the PLC output.

PLC VB6.0; serial port communication; binary system

2017-05-10

孫琦君(1995-),女。主要研究方向:計(jì)算機(jī)通信。

G712

A

1672-0601(2017)08-0115-04

猜你喜歡
按鈕程序
這些按鈕能隨便按嗎?
哪個(gè)是門鈴真正的按鈕
當(dāng)你面前有個(gè)按鈕
試論我國未決羈押程序的立法完善
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
死循環(huán)
英國與歐盟正式啟動(dòng)“離婚”程序程序
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
內(nèi)心不能碰的按鈕
主站蜘蛛池模板: 在线a网站| 久久免费视频6| 黄色网在线免费观看| 91九色视频网| 激情综合网址| 99一级毛片| 国产美女91呻吟求| 99精品福利视频| 91在线日韩在线播放| 国产丝袜丝视频在线观看| 国产在线精彩视频二区| 99精品欧美一区| 国产99视频免费精品是看6| 日韩精品免费在线视频| 欧美日韩动态图| 日韩色图在线观看| 亚洲av无码久久无遮挡| 男人天堂亚洲天堂| 白丝美女办公室高潮喷水视频| 成人夜夜嗨| 国产特级毛片aaaaaa| 正在播放久久| 青青操视频在线| 精品国产99久久| 97国产精品视频人人做人人爱| 国产成人久久777777| 亚洲无线视频| 成年人久久黄色网站| 啪啪免费视频一区二区| 国产亚洲高清在线精品99| 天天躁夜夜躁狠狠躁图片| 国产91精品久久| 亚洲自拍另类| 91无码人妻精品一区二区蜜桃| 东京热av无码电影一区二区| 在线观看国产精美视频| 福利视频久久| 日本亚洲欧美在线| 一区二区三区在线不卡免费 | 免费看黄片一区二区三区| 精品一区二区三区波多野结衣| 亚洲国产精品久久久久秋霞影院 | 欧美日韩综合网| 中国特黄美女一级视频| 亚洲啪啪网| 国产91麻豆免费观看| 九九视频在线免费观看| a级毛片免费网站| 美女黄网十八禁免费看| 国产a v无码专区亚洲av| 亚洲AV电影不卡在线观看| 一本大道无码高清| 波多野结衣一二三| 国产自在线拍| 五月天香蕉视频国产亚| 黄色网站在线观看无码| 亚洲天堂伊人| 欧美不卡在线视频| 1024你懂的国产精品| 久久国产高潮流白浆免费观看| 国产xx在线观看| 制服丝袜无码每日更新| 国产真实乱人视频| 国产精品无码久久久久AV| 久久人妻xunleige无码| 国模私拍一区二区| 国产精品视频a| 国产精品蜜臀| 国产午夜看片| 在线永久免费观看的毛片| 国产成人艳妇AA视频在线| 麻豆精品久久久久久久99蜜桃| 无码精油按摩潮喷在线播放| 91麻豆精品视频| 国产小视频免费观看| 亚洲成aⅴ人在线观看| 欧美成人综合在线| 91小视频在线| 国产精品网拍在线| 国产亚洲精久久久久久无码AV| 日韩黄色精品| 91精品在线视频观看|