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)心不能碰的按鈕
主站蜘蛛池模板: 久久天天躁狠狠躁夜夜躁| 精品视频一区二区三区在线播| 免费高清毛片| 特级毛片免费视频| 国产精品亚洲精品爽爽| 日本91视频| 国产精品亚洲精品爽爽| 少妇精品久久久一区二区三区| 久久精品娱乐亚洲领先| 国产综合另类小说色区色噜噜| 国产精品自在拍首页视频8| 成人免费一区二区三区| 久一在线视频| 欧美19综合中文字幕| 中文字幕欧美成人免费| 日韩一区二区在线电影| 亚洲无线观看| 在线综合亚洲欧美网站| 性欧美在线| 欧美精品成人一区二区视频一| 理论片一区| 精品无码一区二区三区电影| 制服丝袜一区二区三区在线| 亚洲成人动漫在线观看| 国产鲁鲁视频在线观看| 三上悠亚在线精品二区| 四虎成人免费毛片| 久久综合结合久久狠狠狠97色| 无码中文字幕精品推荐| 成人免费网站在线观看| 国产精品亚洲一区二区三区z| 黄色免费在线网址| 扒开粉嫩的小缝隙喷白浆视频| 免费看a级毛片| 五月天香蕉视频国产亚| 57pao国产成视频免费播放| 欧美视频免费一区二区三区| 九九视频免费看| 国产精品自在在线午夜区app| 亚洲首页在线观看| 高清不卡一区二区三区香蕉| 四虎成人在线视频| 国产产在线精品亚洲aavv| 欧美一区国产| 一本大道AV人久久综合| 欧美一级高清免费a| 久久国产精品嫖妓| 日韩高清欧美| 中文字幕天无码久久精品视频免费| 日韩在线成年视频人网站观看| 福利片91| 亚洲无线国产观看| 亚洲三级电影在线播放| 亚洲精品无码AV电影在线播放| 91在线免费公开视频| 毛片免费高清免费| 无码电影在线观看| 欧美中文字幕在线二区| 日韩精品高清自在线| 91在线丝袜| 久久精品国产999大香线焦| 99精品视频九九精品| 国产熟睡乱子伦视频网站| 国产无码精品在线播放| 亚洲 成人国产| 青青草原国产精品啪啪视频| 亚洲综合精品第一页| 亚洲无限乱码| 秋霞国产在线| 伊人网址在线| 最新亚洲人成网站在线观看| 91丨九色丨首页在线播放| 国产成人高清亚洲一区久久| 国产人免费人成免费视频| 国产91视频观看| 无码中文字幕乱码免费2| 精品久久香蕉国产线看观看gif | 日韩精品毛片人妻AV不卡| 91精品福利自产拍在线观看| 五月天香蕉视频国产亚| 国内精自视频品线一二区| 国产人人乐人人爱|