VB與永宏P(guān)LC通信源碼要點(diǎn)

上傳人:靚*** 文檔編號(hào):32261619 上傳時(shí)間:2021-10-13 格式:DOCX 頁(yè)數(shù):16 大?。?25.92KB
收藏 版權(quán)申訴 舉報(bào) 下載
VB與永宏P(guān)LC通信源碼要點(diǎn)_第1頁(yè)
第1頁(yè) / 共16頁(yè)
VB與永宏P(guān)LC通信源碼要點(diǎn)_第2頁(yè)
第2頁(yè) / 共16頁(yè)
VB與永宏P(guān)LC通信源碼要點(diǎn)_第3頁(yè)
第3頁(yè) / 共16頁(yè)

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《VB與永宏P(guān)LC通信源碼要點(diǎn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《VB與永宏P(guān)LC通信源碼要點(diǎn)(16頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、VB與PLC之實(shí)時(shí)控制系統(tǒng) 詹金萬(wàn)、陳嘉龍 、前言 隨著IT產(chǎn)業(yè)的進(jìn)步及因特網(wǎng)的發(fā)展,傳統(tǒng)工業(yè)控制所使用之 PLC控制器,具有高 度的穩(wěn)定性及抗噪聲的特性且配線容易及價(jià)格便宜,因此被大量應(yīng)用在自動(dòng)化的場(chǎng)所, 已由單機(jī)操作朝向網(wǎng)絡(luò)控制化發(fā)展,本文在探討網(wǎng)絡(luò)控制化的核心技術(shù),使 PC藉由 RS-232通訊協(xié)議("控制PLC (如圖一),并透過VB程序語(yǔ)言,達(dá)到遠(yuǎn)程控制及網(wǎng)絡(luò)自 動(dòng)化控制的功能。本文以手動(dòng)/自動(dòng)紅綠燈控制為主題,所使用之 PLC為國(guó)內(nèi)永宏電機(jī) 公司所制FB-PLC,內(nèi)含通訊模塊,因此不需額外增購(gòu),且可由該公司網(wǎng)站免費(fèi)下載及更 新階梯圖發(fā)展軟件(Winproladder)。

2、PC 主系統(tǒng) (Master) PLC 仆系統(tǒng) (Slave) 命令訊息 RS--232 響應(yīng)訊息 圖一 、FB-PLC通訊協(xié)議 FB-PLC藉由RS-232與PLC取得接口的傳輸,其傳輸格式(注2)如圖二所示,以起始字 符(ASCII 02H)與結(jié)束字符(ASCII 03H)作為整個(gè)命令傳輸及響應(yīng)訊息的傳輸封包, FB-PLC總計(jì)提供15種命令格式(ASC1140H~4EH),當(dāng)主系統(tǒng)將命令傳至 PLC后,PLC 將依據(jù)命令自動(dòng)回傳所對(duì)應(yīng)的訊息,如圖三所示 起始 字符 仆站 號(hào)碼 命令 號(hào)碼 本文資料 偵誤值 checksum 結(jié)束 字符

3、0~500 個(gè) ASCII 字符 圖 范例:將PLC啟動(dòng)(RUN) Master 命令 PLC 回應(yīng) 16 ?手動(dòng)/自動(dòng) 紅綠燈控制階梯圖程序 利用緩存器R0, R4作為綠燈時(shí)間的計(jì)數(shù)器,R1, R2作為綠燈閃爍次數(shù)及閃爍時(shí)間 的計(jì)數(shù)器,R3作為黃燈停留時(shí)間計(jì)數(shù)器,Y0、Y1、Y2分別代表東西向紅、黃、綠三個(gè) 燈,Y3、Y4、Y5分別代表南北向紅、黃、綠三個(gè)燈。利用輸入 X2作手動(dòng)/自動(dòng)的切換 控制。當(dāng)PLC處于自動(dòng)模式時(shí),綠燈交換分別由緩存器 R0、R4控制;當(dāng)PLC處于手動(dòng) 模式時(shí),由輸入X1決定綠燈交換程序。紅綠燈階梯圖的設(shè)計(jì)程序如圖四所示

4、。 N00i9 STP SSO TO 圖四 手動(dòng)/自動(dòng)紅綠燈控制階梯圖程序 四、VB實(shí)時(shí)監(jiān)程序架構(gòu)及程序設(shè)計(jì) PC藉由RS232與PLC取得聯(lián)機(jī),傳送速度設(shè)定為9600bps整個(gè)聯(lián)機(jī)設(shè)定請(qǐng)參考 VB程序Form_Load(底。實(shí)時(shí)監(jiān)控畫面設(shè)計(jì)如圖五所示,當(dāng)執(zhí)行實(shí)時(shí)偵測(cè)狀態(tài)按鈕時(shí), 桌面將呈現(xiàn)如圖六?圖九所示實(shí)時(shí)狀態(tài)圖,狀態(tài)的偵測(cè)采用輪詢( polling)方式,依序 讀取PLC輸出及輸入的實(shí)時(shí)狀態(tài),程序執(zhí)行請(qǐng)參考 VB程序SendFrame(Data, N裁;執(zhí) 行參數(shù)傳遞按鈕時(shí),桌面將呈現(xiàn)如圖十畫面,當(dāng)使用者修改參數(shù)后,執(zhí)行傳遞參數(shù)按鈕, PLC將依據(jù)新的數(shù)據(jù)執(zhí)行其程序

5、,程序執(zhí)行請(qǐng)參考 VB程序Send_Ref_Click假。另傳送 命令按鈕提供個(gè)別參數(shù)的讀取和設(shè)定及 PLC執(zhí)行程序的加載和存盤等多項(xiàng)功能,桌面呈 現(xiàn)如圖H^一畫面,程序執(zhí)行請(qǐng)參考 VB程序SendCmd_Click(段。 -IE 火 I HEJS 該站進(jìn)調(diào)[―■ ■ ■■除苴料;二曲查礴 命令爨珥I I I :他七 二I :: 口號(hào)司滴料 一糧置謁 flfJFU 序止乳白 同步A樵情御 骷熟海蛋 博運(yùn)用帝 清除|話市 供站■[01 ■謫料翰宜稿 訪令蝌k I r~ 陀二士R 曬 10時(shí)詢 精存器笠料 福及起 a 凰: :::::XU IS X3 I? Xr

6、i X?附雪? XS m ISO XII xn KI? tu :::VU TJ 1 T3 V4 T5 Tfr V? ?8 VU 710 1!:::::::::::: ^■ppoooooDogoo:iiHibH^ Y0 I ?] I TJ I I W I T5 I T6 I T7 I ?6 I Y9 I Tlfl I TH I ?轂便退〔 M XI牢2 X3工*15 刖取物期 X10 III XII對(duì)3 KI* XIS g □匚□□口 YD VI 心 YJ 皿 5 V6 燈我修 Y10的1 i 0000000000 TO 1 3 I TJ T4 75 V6 T? Iffl I

7、T9 VI01 TIL 圖五實(shí)時(shí)監(jiān)控畫面設(shè)計(jì) 圖六東西向綠燈Y0監(jiān)控狀態(tài) 圖七 東西向黃燈Y1監(jiān)控狀態(tài) 圖八南北向綠燈Y3監(jiān)控狀態(tài) 祿燧^鏢次數(shù):|T 鏢疇固:尸 黃燎亮畤^: po 木象爆亮畤是十束西向) 睇熄亮畤圄(南北向) 僖送磐敷拓^蓼敷 TI 向主瘦面 YD YJ TI TJ T4 T5 B T? B Y5 Y3D T3J oo>o*ooooooo 0 1 Z yj T4 TJ I H 7 B 9 TIC JL 圖十參數(shù)設(shè)定傳遞畫面 ■ II遇皆耳 量站雄國(guó)RT 命令熨昌7\~ 博送it料 糧克超 「 圖九 南北向黃燈Y4監(jiān)控狀態(tài) 初用

8、需工 M 工,液 JP 而 HP K抑XII IL2 XI? XM川5 a□□□□□□□□□□□□□□口口 VD ?] 72 TJ 74 T5 品 7 YR VS Y3D T1I oooooooooooo VD 1 2 YJ TjI T3 I ffl V7 YB Y9 Mlt 3L 個(gè)別參數(shù)命令的傳送選擇畫面 五、結(jié)論 隨著因特網(wǎng)的普及,遠(yuǎn)程監(jiān)控已是必然的趨勢(shì),本專題所提供PC與FB-PLC間的聯(lián) 機(jī),僅需在VB程序中加入因特網(wǎng)對(duì)象即可達(dá)到Internet的遠(yuǎn)距控制,亦可透過RS485接 口達(dá)到遠(yuǎn)程實(shí)時(shí)監(jiān)控。 六、參考數(shù)據(jù) 1: “Vb與8051串行傳送之研制”國(guó)立瑞芳高工90

9、年教師專題研究 2 : “FB-系列 RS-232通訊協(xié)議”永宏電機(jī)股份有限公司 七、VB程序代碼 Forml程序代碼如下: Dim Status1(15) Dim Status2(12) Dim bx(15) Dim by(12) Dim Reg Dim flag Dim flag1 Dim flag2 Dim page_no Input X接點(diǎn)的狀態(tài) Output 丫接點(diǎn)的狀態(tài) X接點(diǎn)狀態(tài) 丫接點(diǎn)狀態(tài) ‘啟動(dòng)旗號(hào) ’由計(jì)算機(jī)讀出 PLC緩存器程序旗號(hào) ’由計(jì)算機(jī)寫入PLC緩存器程序旗號(hào) ‘緩存器頁(yè)數(shù) 命令"4A"程序 命令"4B"程序 Pu

10、blic Sub SendFrame(Data, No) ′傳送通訊訊息格式 ()子程序 Select Case No Case 0: Check = Calculate_LRC(Data, 0) 計(jì)算 LRC 值 sendtxt = Chr$(&H2) & Trim(ClientNo) & Trim(CmdNo) & Trim(Data) & Trim(Check) & Chr$(&H3) ‘開頭字符+仆站號(hào)碼+命令號(hào)碼+本文數(shù)據(jù)+偵誤值+結(jié)尾字符 Case 1: Check = Calculate_LRC(Data, 1) 計(jì)算 LRC 值 sendtxt = Chr$(&

11、H2) & Trim(ClientNo) & Trim(Data) & Trim(Check) & Chr$(&H3) ‘開頭字符+仆站號(hào)碼+本文數(shù)據(jù)+偵誤值+結(jié)尾字符 Case 2: sendtxt = Chr$(&H2) & Trim(ClientNo) & Trim(Data) & Trim(Check_RegText) & Chr(&H3) ‘開頭字符+本文數(shù)據(jù)+結(jié)尾字符 End Select MSComm.Output = sendtxt 透過 RS-232送出 End Sub Public Function Calculate_LRC(Data, No) As Str

12、ing 計(jì)算 LRC 值()子程序 Select Case No Case 0: LRC = 2 + Asc(Left(ClientNo, 1)) + Asc(Mid(ClientNo, 2, 1)) + Asc(Left(CmdNo, 1)) + Asc(Mid(CmdNo, 2, 1)) ’包含開頭字符Chr$(&H2)、仆站號(hào)碼與命令碼 Case 1: LRC = 2 + Asc(Left(ClientNo, 1)) + Asc(Mid(ClientNo, 2, 1)) End Select For i = 1 To Len(Data) LRC = LRC + Asc(M

13、id(Data, i, 1)) Next 將 Data 一次取一字符加入 LRC 中 LRC_Remain = LRC Mod 16 LRC_Quotient = LRC \ 16 LRC_Quotient = LRC_Quotient Mod 16 Calculate_LRC = Hex(LRC_Quotient) & Hex(LRC_Remain) End Function 取余數(shù) LRC 的個(gè)位數(shù) 取商數(shù) LRC 的十位數(shù) 回傳十六進(jìn)制值 Private Sub B_Y_Click(Index As Integer) If Index = 0 Then

14、If by(Index) = 1 Then sendtxt = "424Y0000" by(Index) = 0 Else sendtxt = "423Y0000" by(Index) = 1 End If Else If by(Index) = 1 Then sendtxt = "424Y000" & Format(Hex(Index), "##") by(Index) = 0 Else sendtxt = "423Y000" & Format(Hex(Index), "##") by(Index) = 1 End If End If SendFrame se

15、ndtxt, 1 End Sub Y 按鈕 ()子程序 如果是第 0 個(gè)按鈕 原先是 High, 就讓它變 Low 傳送字符串多補(bǔ)一個(gè) 0 更改by(Index)內(nèi)容為L(zhǎng)ow的狀態(tài) Y接點(diǎn)狀態(tài) 原先是 Low, 就讓它變 High 更改 by(Index) 內(nèi)容為 High 的狀態(tài) ’如果是第1?第11個(gè)按鈕 傳送字符串為兩位數(shù) ,不須補(bǔ)一個(gè) 0 傳送命令數(shù)據(jù)至 RS-232 Private Sub CmdList_Click() Select Case CmdList.ListIndex Case 0: CmdNo = "40" Case 1: CmdNo =

16、 "41" Case 2: CmdNo = "42" Case 3: CmdNo = "43" Case 4: CmdNo = "44" Case 5: CmdNo = "45" Case 6: CmdNo = "46" Case 7: CmdNo = "47" Case 8: CmdNo = "48" Case 9: CmdNo = "49" Case 10: CmdNo = "4A" Case 11: CmdNo = "4B" Case 12: CmdNo = "4C" Case 13: CmdNo = "4D" Case 14: CmdNo = "4E" En

17、d Select End Sub Private Sub CmdNo_Change() Select Case CmdNo.Text Case "40": CmdList.ListIndex = 0 Case "41": CmdList.ListIndex = 1 Case "42": CmdList.ListIndex = 2 Case "43": CmdList.ListIndex = 3 命單清單選擇 ()子程序 依據(jù)命令清單來選擇命令 命令號(hào)碼改變 ()子程序 依據(jù)選擇命令顯示命令清單

18、 Case "44": CmdList.ListIndex = 4 Case "45": CmdList.ListIndex = 5 Case "46": CmdList.ListIndex = 6 Case "47": CmdList.ListIndex = 7 Case "48": CmdList.ListIndex = 8 Case "49": CmdList.ListIndex = 9 Case "4A": C

19、mdList.ListIndex = 10 Case "4B": CmdList.ListIndex = 11 Case "4C": CmdList.ListIndex = 12 Case "4D": CmdList.ListIndex = 13 Case "4E": CmdList.ListIndex = 14 Case Else: MsgBox " 無(wú)此命令 !!", vbCritical, " 錯(cuò)誤 !" End Select End Sub Private Sub Command1_Click() Form1.Hide Form2.Show End Sub Pr

20、ivate Sub Connect_Click() flag = 1 Connect.Enabled = False Do DoEvents SendFrame "440CY0000", 1 For i = 0 To 10 DoEvents Next SendFrame "4410X0000", 1 Loop While (flag = 1) End Sub Private Sub Form_Activate() CmdList.ListIndex = 1 End Sub Private Sub RegText_Change() Check_RegText =

21、Calculate_LRC(RegText, 1) End Sub 同步狀態(tài)偵測(cè) ()子程序 設(shè)定啟動(dòng)旗號(hào) 同步狀態(tài)偵測(cè)按鈕失效 要求回傳 Y0000?Y000B共12個(gè)接點(diǎn)狀態(tài) 延遲時(shí)間 要求回傳 X0000?X0010共16個(gè)接點(diǎn)狀 重復(fù)執(zhí)行回傳 X 與 Y 接點(diǎn)狀態(tài),直到 [啟動(dòng)旗號(hào) ]被停止為止 窗體啟用 ()子程序 預(yù)設(shè)命令為 "PLC 執(zhí)行控制 " RegText 改變 ()子程序 計(jì)算 LRC 值顯示在 Check_RegText 上 傳送 ()子程序 Private Sub SendCmd_Click() If SendData =

22、 "" Then MsgBox " 傳送數(shù)據(jù)不可空白 !!", vbCritical, "錯(cuò)誤 !" Else CheckText = Calculate_LRC(SendData, 0) 計(jì)算 LRC 值顯示在檢查碼上 SendFrame SendData, 0 傳送數(shù)據(jù) End If End Sub 清除 ()子程序 接點(diǎn)全部 OFF ,顯示白色 Private Sub ClearData_Click() For i = 0 To 15 bx(i) = 0 InpX(i).BackColor = RGB(255, 255, 255) Next For i =

23、0 To 11 by(i) = 0 OutY(i).BackColor = RGB(255, 255, 255) 接點(diǎn)全部 OFF ,顯示白色 Next End Sub Private Sub EndCmd_Click() If MSComm.PortOpen = True Then MSComm.PortOpen = False End If End 結(jié)束 ()子程序 關(guān)閉通訊端口 程序結(jié)束 End Sub Private Sub Form_Load() MSComm.CommPort = 1 MSComm.Settings = "9600,e,7,1" MS

24、Comm.PortOpen = True MSComm.RThreshold = 1 MSComm.InputLen = 0 MSComm.RTSEnable = True 窗體加載 ()子程序 指定 COM1 作為通訊端口 設(shè)定通訊協(xié)議的格式 開起通訊端口 設(shè)定輸入緩沖區(qū)接到一個(gè)字,即起動(dòng)接收事件 (OnComm) 設(shè)定每次讀取輸入緩沖區(qū)的數(shù)據(jù)的長(zhǎng)度, 0 表示每次讀取所有數(shù)據(jù) 使 Request To Send (RTS) 線有效。 一般情況下,由計(jì)算機(jī)傳送 RTS 信號(hào)到調(diào)制解調(diào)器,以請(qǐng)示準(zhǔn)許傳 送數(shù)據(jù) flag = 1 flag1 = 0 flag2 =

25、1 End Sub 啟動(dòng)旗號(hào) 設(shè)定讀出 PLC 緩存器程序旗號(hào) 設(shè)定寫入 PLC 緩存器程序旗號(hào) Public Sub MSComm_OnComm() Do buffer = buffer & MSComm.Input 止 Loop Until InStr(buffer, Chr(&H3)) If InStr(buffer, Chr(&H2)) Then buffer = Right(buffer, Len(buffer) - 1) End If If InStr(buffer, Chr(&H3)) Then buffer = Mid(buffer, 1, InS

26、tr(1, buffer, Chr(&H3), 1) - 1) End If Select Case Mid(buffer, 3, 2) Case "40": " PLC 系統(tǒng)狀態(tài) " Case "41": " PLC 之 RUN/STOP 控制 " Case "42": " 單一個(gè)單點(diǎn)之運(yùn)作控制 " Case "43": " 連續(xù)多個(gè)單點(diǎn)之抑 / 致能狀態(tài)讀取 " Case "44": " 連續(xù)多個(gè)單點(diǎn)之狀態(tài)讀取 " XStatus = "" YStatus = "" If Len(buffer) = 23 Then For i = 0 To 15 RS-2

27、32 接收 ()子程序 一直接收字符串,直到收到結(jié)尾字符為 去除開頭字符 去除結(jié)尾字符 判別命令碼 顯示狀態(tài)值 清除 XStatus 內(nèi)容 清除 YStatus 內(nèi)容 接收到 Input X 的內(nèi)容 ’0?15共16個(gè)輸入端 XStatus = XStatus & Mid(buffer, 6 + i, 1) 將16個(gè)接點(diǎn)的 ON/OFF 狀態(tài)顯示在 XStatus上 Case "45": Case "46": Case "47": Case "48": Case "49": Case "4A": Case "4B": Case "4C": Case "4

28、D": Case "4E": Case Else: End Select End Sub If Mid(XStatus, i + 1, 1) = 1 Then InpX(i).BackColor = RGB(255, 0, 0) bx(i) = 1 Else InpX(i).BackColor = RGB(255, 255, 255) bx(0) = 0 End If Next ElseIf Len(buffer) = 19 Then For i = 0 To 11 YStatus = YStatus & Mid(buffer, 6 + i, 1) 如果接點(diǎn)為 ON

29、,顯示紅色 如果接點(diǎn)為 OFF ,顯示白色 接收到 Output Y 的內(nèi)容 0?11共12個(gè)輸出端 將12個(gè)接點(diǎn)的 ON/OFF 狀態(tài)顯示在 YStatus上 If Mid(YStatus, i + 1, 1) = 1 Then OutY(i).BackColor = RGB(255, 0, 0) by(i) = 1 Else OutY(i).BackColor = RGB(255, 255, 255) by(i) = 0 End If Next End If 連續(xù)多個(gè)單點(diǎn)之狀態(tài)寫入 " 連續(xù)多個(gè)緩存器之?dāng)?shù)據(jù)讀取 " 連續(xù)多個(gè)緩存器之?dāng)?shù)據(jù)寫入 " 任意單點(diǎn) / 緩存器混

30、合之狀態(tài) / 數(shù)據(jù)讀取 " 任意單點(diǎn) / 緩存器混合之狀態(tài) / 數(shù)據(jù)寫入 " 如果接點(diǎn)為 ON ,顯示紅色 如果接點(diǎn)為 OFF ,顯示白色 " 程序存盤 " Reg = buffer flag1 = 1 " 程序加載 " flag2 = 1 " 緩存器數(shù)據(jù)存盤 " " 緩存器數(shù)據(jù)加載 " " 測(cè)試回傳 " 設(shè)定讀出緩存器旗標(biāo),以利 設(shè)定寫入緩存器旗標(biāo),以利 "未知命令 " & Mid(buffer, 3, 2) & vbCrLf & buffer Private Sub Read_PLC_Click() FileDlg.Filter = "*.txt"

31、FileDlg.ShowSave fn = FileDlg.FileName On Error GoTo err Open fn For Append As #1 For page_no = 0 To 127 RegTxt = "" SendFrame "4A" & Format(Hex(page_no), "##"), 1 Do Until flag1 = 1 DoEvents Loop 顯示緩存器內(nèi)容存入 Reg Read_PLC_Click()子程序執(zhí)行 Write_PLC_Click() 子程序執(zhí)行 讀取PLC()子程序 預(yù)設(shè)擴(kuò)展名為 *.txt 顯示儲(chǔ)存檔案對(duì)

32、話盒 ’指定槽名fn 如有錯(cuò)誤發(fā)生 ,跳至錯(cuò)誤處理 將讀出的緩存器內(nèi)容存盤 緩存器共 128頁(yè) 每次清除轉(zhuǎn)換后要存檔的 Reg 內(nèi)容 直到計(jì)算機(jī)讀出 PLC 緩存器程序旗號(hào)為止 For i = 3 To Len(Reg) - 2 If i = 4 Then RegTxt = RegTxt & "B" ElseIf i =

33、 5 Then If page_no < 16 Then RegTxt = RegTxt & "0" & Hex(page_no) Else RegTxt = RegTxt & Hex(page_no) End If Else RegTxt = RegTxt & Mid(Reg, i, 1) End If Next 從頭開始至偵誤碼前結(jié)束 將命令 "4A" 改成 "4B" 少于兩碼的,補(bǔ)一位數(shù)的 "0" 本來就是兩碼的,不須補(bǔ) "0" 將讀取進(jìn)來的 RegText 轉(zhuǎn)換成要存檔的 Reg RegText = RegTxt Write #1, RegTex

34、t flag1 = 0 Next err: Close #1 End Sub Private Sub RunCmd_Click() If MSComm.PortOpen = False Then MSComm.PortOpen = True End If RunCmd.Enabled = False StopCmd.Enabled = True Connect.Enabled = True SendFrame "411", 1 flag = 1 顯示在 RegText 上 寫入檔案 清除旗號(hào),等待下次再執(zhí)行 錯(cuò)誤處理 關(guān)閉檔案 執(zhí)行 ()子程序 執(zhí)行按鈕失效

35、停止按鈕有效 同步狀態(tài)偵測(cè)按鈕有效 傳送命令 設(shè)定 [啟動(dòng)旗號(hào) ],執(zhí)行循環(huán) End Sub Private Sub SendData_Change() CheckSum = Calculate_LRC(SendData, 0) End Sub Private Sub StopCmd_Click() RunCmd.Enabled = True StopCmd.Enabled = False Connect.Enabled = False flag = 0 傳送數(shù)據(jù)改變 ()子程序 計(jì)算檢查碼顯示在 CheckSum 上 停止 ()子程序 執(zhí)行按鈕有效 停止

36、按鈕失效 同步狀態(tài)偵測(cè)按鈕有效 停止 [啟動(dòng)旗號(hào) ],跳離執(zhí)行循環(huán) For i = 0 To 4 SendFrame "410", 1 Next For i = 0 To 11 by(i) = 0 OutY(i).BackColor = RGB(255, 255, 255) Next End Sub 為防止無(wú)法立即關(guān)閉,傳送三次命令,強(qiáng)迫停止 接點(diǎn)全部 OFF ,顯示白色 Form2程序代碼

37、如下: Dim R0, R1, R2, R3, R4 Private Sub BackMain_Click() Unload Me Forml.Show End Sub Private Sub Default_Ref_Click() EW_GreenTime = 25 GreenFlashCount = 2 GreenFlashTime = 4 YellowTime = 20 SN_GreenTime = 25 End Sub Private Sub EW_GreenTime_Change() VScrollGT_EW.Value 二EW_GreenTime En

38、d Sub Private Sub Form_Activate() Default_Ref_Click End Sub Private Sub Form_Load() VScrollGFT = GreenFlashTime VScrollGFC = GreenFlashCount VScrollYT = YellowTime VScrollGT_EW = EW_GreenTime VScrollGT_SN = SN_GreenTime End Sub Private Sub GreenFlashCount_Change() VScrollGFC.Value = Gree

39、nFlashCount End Sub Private Sub GreenFlashTime_Change() VScrollGFT.Value = GreenFlashTime End Sub Private Sub Send_Ref_Click() R0 = Format(Hex(EW_GreenTime), "0000") R1 = Format(Hex(GreenFlashCount), "0000") R2 = Format(Hex(GreenFlashTime), "0000") R3 = Format(Hex(YellowTime), "0000") R4 =

40、 Format(Hex(SN_GreenTime), "0000") sendtxt = "4905" & "R00000" & R0 & "R00001" & R1 & "R00002" & R2 & "R00003" & R3 & "R00004" & R4 Form1.SendFrame sendtxt, 1 End Sub Private Sub SN_GreenTime_Change() VScrollGT_SN.Value 二SN_GreenTime End Sub Private Sub VScrollGFC_Change() GreenFlashCount =

41、VScrollGFC.Value End Sub Private Sub VScrollGFT_Change() GreenFlashTime = VScrollGFT.Value End Sub Private Sub VScrollGT_EW_Change() EW_GreenTime = VScrollGT_EW.Value End Sub Private Sub VScrollGT_SN_Change() SN_GreenTime = VScrollGT_SN.Value End Sub Private Sub VScrollYT_Change() YellowTime = VScrollYT.Value End Sub Private Sub YellowTime_Change() VScrollYT.Value = YellowTime End Sub

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!