无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频

您現在所在的是:

串口通信

回帖:75個,閱讀:51789 [上一頁] [1] [2] [3] [4] [5] [6] [7] [8] [下一頁]
1273
Guan_Qing_Xin
文章數:175
年度積分:50
歷史總積分:1273
注冊時間:2002/8/7
發站內信
發表于:2003/7/31 17:46:00
#0樓
用FX-PLC編程口通訊電纜遍歷讀PLC的映象區
  FX-PLC的編程口通訊協議只有幾個命令,這就是"0,1,7,8"(讀/寫/強制位ON/強制位OFF),
它以PLC內部映象地址為操作對象,所有元件地址都從一張映象地址表中換算出來,包括用戶
程序。
 它屬于低層操作協議,有最強大的功能,諸如元件讀寫、強制位元件、程序讀寫、密碼讀
寫、非連續地址通訊時用的指針隊列讀寫....有廠家編程軟件所提供的全部功能(它也是
通過編程口與PLC連接的)。在上位機獨占PLC的直連條件下,是一種最得心應手的通訊方
法。

 本人嘗試在Execl電子表格中編程,遍歷讀出FX-PLC的全部映象地址里的數據和它的狀態
,當然它包含了PLC的全部元件區和用戶程序區(PLC密碼在程序區內)了。

具體做法:
1. 在新建的XLS文檔里,命名一個“遍歷讀FXPLC”和一個“PLC數據”工作表。
2. VBA程序全部放在與“遍歷讀FXPLC”工作表對應的代碼區內,工作表的第一行放3個控件
,一個MSCOMM通訊控件和兩個命令按鈕。這里要說明的是,用戶在安裝了VB6.0后才可使用
MSCOMM控件,當然可以在自有 MSCOMM32.OCX 時自行注冊后使用。
 MSCOMM控件的引用:
 在Exexl的菜單欄中點擊: 視圖 -> 工具欄 -> 控件工具箱, 將它拖到工具欄上或其它合
 適的位置.
 點擊控件工具箱工具上的"查看代碼"按鈕,進入代碼編輯區,再點擊VB編輯器的菜單欄中的:
 工具 -> 引用,在"可使用的引用"  區中尋找"MSCOMM32.OCX"控件并選中它。如找不到,點
 擊"瀏覽"按鈕,在Windows的系統文件區(system/system32)可找到它,  注意在文件類型欄
 中應選"ActiveX控件(*.OCX)",找到"MSCOMM32.OCX"文件后點擊選擇,退出。
3.返回Execl編輯器,點擊控件工具箱上的"其它控件"按鈕,在它的菜單欄中選中:
 Microsoft Chart Control, version 6.0 或:
 Microsoft Communications Control, version 6.0
 把這個電話機圖標安放在"遍歷讀FXPLC"工作表的第一行上,它的缺省名為MSComm1
 再在控件工具箱拖放兩個命令按鈕放到第一行:CommandButton1和CommandButton2,
 給按鈕分別命名為"開始測試"和"打斷操作"。
4.說明:"遍歷讀FXPLC"工作表從第二行起由程序自動填寫每次操作的狀態,如:"0000:OK",
 表示讀映象地址0000區時得到了正確的數據,而“8000:ERR”則表示在讀8000h映象地址
 時出錯。
 "PLC數據"工作表由程序自動填寫由PLC返回的對應數據,如"8000:XXXXXXX.....",它表示
 PLC返回8000h首地址開始的完整數據(含起始符、結束符和校驗碼)。
 程序開始運行后,整個讀入過程大約需時10-15分鐘。
5.下面就可以在"遍歷讀FXPLC"的代碼區編制代VB代碼了。

(有興趣者頂一下,我將貼出VB代碼...)
1792
王美勛 版主
文章數:318
年度積分:50
歷史總積分:1792
注冊時間:2001/12/18
發站內信
發表于:2003/7/31 18:02:00
#1樓
愿與大家交朋友
1005
jemmie107
文章數:2
年度積分:50
歷史總積分:1005
注冊時間:2003/8/1
發站內信
發表于:2003/8/1 19:31:00
#2樓
我也頂一下----------------
1273
Guan_Qing_Xin
文章數:175
年度積分:50
歷史總積分:1273
注冊時間:2002/8/7
發站內信
發表于:2003/8/1 19:46:00
#3樓
'操作狀態CommExit: 0=通訊進行狀態,>1=通訊被打斷
'通訊狀態CommEnd:0=開始發送和等待接收,>1:接收串已結束

'CommError=通訊出錯計數
'FxAddress=PLC映象地址計數

'FxString=存放每次PLC返回的應答串
'ErrStr=每串操作的結果提示,"OK" 或 "ERR"
'RowCo1=每次操作結果放在電子表格的填充區域

Public CommExit%, CommEnd%
Public CommError&, FxAddress&
Public FxString$, ErrStr$, RowCo1$

'將CommandButton1改名為Beginning,開始測試
Private Sub Beginning_Click()
Dim c As Range
Dim m1, m2
Dim s$, s1$, MaxLen&

On Error GoTo err1
CommPortOpen 1  '設置串口參數和打開端口
CommExit = 0
CommError = 0
Range("A1") = ""
Range(RowCo1) = ""
FxAddress = 0
RowCo1 = "a2:p257" '操作結果填寫在表格的區域
MaxLen = 16     '每次讀PLC映象的字節數
'遍歷讀FX-PLC映象區
For Each c In Range(RowCo1)
   '命令串轉換
   s = "0" & Right("000" & Hex(FxAddress), 4) & Hex(MaxLen)
   '指示正在讀入的區域
   c = Right("000" & Hex(FxAddress), 4) & ":"
   '清接收區殘余數據,和發命令
   s1 = MSComm1.Input
   MSComm1.Output = FxChar(s)
   
   FxString = ""  '清接收區
   CommEnd = 0    '置發送狀態
   c.Select    '焦點指向當前單元格
   
   m1 = Timer + 2 '限定等待時間2秒,超出后轉出錯并結束
   Do While CommExit = 0
       m2 = Timer
       If m2 > m1 Then
           MsgBox "通訊線路出錯!請檢查線路...", vbCritical
           MSComm1.PortOpen = False
           Exit Sub
       End If
       DoEvents    '交出VB事件處理控制權
   Loop
   
   '通訊被人工打斷
   If CommExit > 1 Then
       MsgBox "通訊被取消...", vbExclamation
       MSComm1.PortOpen = False
       Exit Sub
   End If
   DoEvents    '交出VB事件處理控制權
   WriteData (FxAddress)   '數據寫入"PLC數據"工作表
   c = c & ErrStr  '給出本輪通訊結果狀態
   FxAddress = FxAddress + MaxLen  '映象地址遷移
   If FxAddress > &HFFFF& Then
       MsgBox "讀入工作全部完成!", vbExclamation
       Exit For
   End If
   DoEvents    '交出VB事件處理控制權
Next
MSComm1.PortOpen = False
err1:
End Sub

'將CommandButton2改名為CancelB,打斷正在進行的通訊
Private Sub CancelB_Click()
CommExit = 3
End Sub

'在串口中斷中接收PLC返回的字串
Private Sub MSComm1_OnComm()
Dim s
Select Case MSComm1.CommEvent
   Case comEvReceive
       s = MSComm1.Input
       Select Case s
           Case Chr(6)
              CommEnd = 3
           Case Chr(21)
              CommEnd = 100
       End Select
       FxString = FxString & s
       If Len(FxString) >= 3 Then
           If Asc(Right(FxString, 3)) = 3 Then
               CommEnd = 5
           End If
       End If
       If CommEnd > 2 Then
         If CommEnd = 5 Then
             ErrStr = "OK"
         Else
             ErrStr = "ERR"
             CommError = CommError + 1
             Range("a1") = "出錯計數:" & CommError
         End If
         CommExit = 1
       End If
End Select
End Sub

'將PLC每次返回的數據填寫在"PLC數據"工作表里
Private Sub WriteData(n As Long)
Dim i&, j&
Dim s$
Static Row1%, Col1%
With Worksheets("PLC數據")
If n = 0 Then
   Row1 = 2
   Col1 = 0
   .Range(RowCo1) = ""
End If
.Range(Chr(&H61 + Col1) & Row1) = Right("000" & Hex(n), 4) _
   & ":" & FxString
If Chr(&H61 + Col1) = "p" Then
   Col1 = 0
   Row1 = Row1 + 1
Else
   Col1 = Col1 + 1
End If
FxString = ""
CommExit = 0
End With
End Sub


'將要發向PLC的命令字串組合:加起始符02h和結束符03h,及累加校驗和,返回給調用者
Private Function FxChar$(s$)
Dim m%, n%
Dim s1$
s1 = UCase(s)
For m = 1 To Len(s1)
   n = n + Asc(Mid(s1, m, 1))
Next
n = n + 3
FxChar = Chr(2) & s1 & Chr(3) & Right(Hex(n), 2)
End Function

'設置通訊口參數后,打開通訊口
Private Sub CommPortOpen(Port%)
If MSComm1.PortOpen = True Then
   MSComm1.PortOpen = False
End If
MSComm1.CommPort = Port
MSComm1.Settings = "9600,e,7,1"
MSComm1.RTSEnable = True
MSComm1.InputMode = comInputModeText
MSComm1.SThreshold = 1
MSComm1.PortOpen = True
End Sub
1273
Guan_Qing_Xin
文章數:175
年度積分:50
歷史總積分:1273
注冊時間:2002/8/7
發站內信
發表于:2003/8/1 19:49:00
#4樓
如果僅相要PLC數據包中的有效數據,Private Sub MSComm1_OnComm()中接收可改為:
=======================================================

'在串口中斷中接收FX-PLC返回的字串:僅截取有用數據
Private Sub MSComm1_OnComm()
Dim s
Select Case MSComm1.CommEvent
   Case comEvReceive
       s = MSComm1.Input
       Select Case s
           Case Chr(2) '串起始碼
           Case Chr(6), Chr(21) '單應答碼和出錯碼
              CommEnd = s
           Case Chr(3) '串結束碼
              CommEnd = 1
           Case Else
              If CommEnd Then
                   Select Case CommEnd
                       Case 1 To 3 '串結束碼到后,再等兩個校驗和碼
                           CommEnd = CommEnd + 1
                       Case 4 To 6 '正常結束
                           ErrStr = "OK"
                           CommExit = 1
                       Case Is > 6 '出錯結束
                           ErrStr = "ERR"
                           CommError = CommError + 1
                           Range("a1") = "出錯計數:" & CommError
                           CommExit = 1
                   End Select
               Else
                   FxString = FxString & s '僅串接有效數據
               End If
       End Select
End Select
End Sub
1792
王美勛 版主
文章數:318
年度積分:50
歷史總積分:1792
注冊時間:2001/12/18
發站內信
發表于:2003/8/1 20:18:00
#5樓
把鄰國的東西吃透,建起我們的民族工控產業。

我再頂一下!
[此貼子已經被作者于2024/11/27 17:39:33編輯過]
愿與大家交朋友
1017
YCM1233211
文章數:9
年度積分:50
歷史總積分:1017
注冊時間:2003/6/15
發站內信
發表于:2003/8/27 16:04:00
#6樓
這位朋友的好幾篇文章都好極!
我很是佩服----人品與才學.
我狂頂!
5681
心情 版主
文章數:1633
年度積分:50
歷史總積分:5681
注冊時間:2001/6/6
發站內信
09工控人生征文
發表于:2003/8/30 15:47:00
#7樓
真不錯,太謝謝了
1281
feng89
文章數:107
年度積分:50
歷史總積分:1281
注冊時間:2002/10/23
發站內信
發表于:2003/8/30 20:58:00
#8樓
太好了!!!!!!!!!!!!
135元10點PLC,6點輸入,4點繼電器輸出,帶外殼、開關電源。
WWW.FXPLC.CN
1017
dreamfour
文章數:6
年度積分:50
歷史總積分:1017
注冊時間:2003/7/14
發站內信
發表于:2003/9/2 15:03:00
#9樓
太好了!!

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 非法和不良信息舉報

工控網客服熱線:0755-86369299
版權所有 工控網 Copyright©2026 Gkong.com, All Rights Reserved

124.8008
无码中文字幕色专区_91av俱乐部_无码人妻h动漫_26uuu成人_91九色丨porny丨国产jk_青青视频在线播放_国内自拍第二页_国产又粗又长又爽又黄的视频_色哟哟免费网站_久久出品必属精品_a级黄色一级片_99日在线视频
国产一区久久| 鲁鲁在线中文| 亚洲不卡av不卡一区二区| 91精品xxx在线观看| 高清不卡亚洲| 亚洲免费中文| 中文在线不卡| 久久国产小视频| 精品一二三区| 日韩精品1区2区3区| 精品国产亚洲日本| 亚洲激情社区| 韩国三级一区| 97精品97| 欧美日韩国产观看视频| 国产日韩免费| 日韩av网站在线免费观看| 99国产成+人+综合+亚洲欧美| 丝袜亚洲另类欧美| 国产亚洲精品v| 日韩福利视频一区| 四虎在线精品| 91精品国产福利在线观看麻豆| 天堂√8在线中文| 亚洲性色av| 视频在线不卡免费观看| 日韩大片在线播放| 国产不卡人人| 国产日产精品一区二区三区四区的观看方式 | 欧美日韩激情在线一区二区三区 | 亚州欧美在线| 中文字幕一区日韩精品| 综合激情网站| 欧美成人精品一级| 久久激情五月激情| 国产精品xx| 国精品一区二区| 亚洲欧美网站在线观看| 日本亚洲欧美天堂免费| 国产亚洲高清在线观看| 精品三区视频| 一本色道精品久久一区二区三区| av亚洲免费| 久久精品xxxxx| 国产精品成人a在线观看| 国产66精品| 精品一区在线| 九九99久久精品在免费线bt| 少妇久久久久| 国产另类在线| 伊人久久亚洲影院| 国精品产品一区| 日本aⅴ精品一区二区三区| 91精品蜜臀一区二区三区在线 | 日日夜夜免费精品视频| 日韩综合精品| 亚洲97av| 女同性一区二区三区人了人一 | 91精品国产自产在线观看永久∴ | 亚洲精品人人| 91嫩草亚洲精品| 国产欧美精品| 日韩在线a电影| 91精品蜜臀一区二区三区在线| 青青草精品视频| 亚洲福利一区| 久久久五月天| 丝袜亚洲另类欧美| 日韩免费福利视频| 成人影视亚洲图片在线| 久久精品成人| 久久亚洲视频| 精品视频黄色| 亚洲深夜av| 黄色免费成人| 久久精品国产99国产| 中文字幕系列一区| 蜜桃av一区二区在线观看| 欧美视频一区| 久久中文字幕av| 综合欧美亚洲| 亚洲天堂久久| 国产精品久久久久久久免费观看| 日韩午夜av| 国产成人久久精品一区二区三区| 亚洲精品中文字幕乱码| 日本久久黄色| 蜜臀久久99精品久久久久久9| 日韩高清一区二区| 久久激情婷婷| 精品免费视频| 亚洲综合激情在线| 激情综合网站| 欧美日韩国产综合网| 精品国产美女a久久9999| 久久国产精品99国产| 国产美女高潮在线| 国产精品亚洲一区二区在线观看| 日本精品国产| 国精品一区二区| 欧美精品一二| 在线视频亚洲欧美中文| 国产精品久一| 亚洲精品无吗| 国内揄拍国内精品久久| 久久裸体视频| 婷婷亚洲成人| 欧美日韩一区二区国产| 中文一区一区三区高中清不卡免费| 日韩一级欧洲| 亚洲va久久久噜噜噜久久| 中国字幕a在线看韩国电影| 国产精品麻豆成人av电影艾秋| 亚洲欧美网站在线观看| 久久人人99| 国产精品任我爽爆在线播放 | 免费久久99精品国产| 日韩精品一区二区三区av | 亚洲欧美日韩专区| 综合国产在线| 日韩av一二三| 日韩成人亚洲| 免费久久精品| www成人在线视频| 日韩不卡在线| 综合亚洲视频| 久久亚洲资源中文字| 午夜欧美精品| 国产精品一级在线观看| 亚洲综合不卡| 日韩国产在线观看一区| 蜜臀av亚洲一区中文字幕| 欧美精品中文字幕亚洲专区| 女人av一区| 视频一区二区欧美| 亚洲欧美日韩国产| 奇米狠狠一区二区三区| 日韩精品国产欧美| 亚洲免费专区| 亚洲无线观看| 国产午夜一区| av亚洲在线观看| 国产精品网址| 午夜久久黄色| 视频一区中文| 丝袜诱惑一区二区| 久久99精品久久久野外观看| 美女尤物久久精品| 色老板在线视频一区二区| 国产精品调教视频| 欧美日韩国产在线观看网站| 亚洲性视频在线| 国产色播av在线| 热久久久久久| 欧美午夜精彩| 久久精品青草| 国产高清视频一区二区| 综合激情婷婷| 日韩成人在线看| 日韩亚洲一区在线| 久久激情中文| 精精国产xxxx视频在线野外| 久久亚洲国产精品尤物| 丝袜诱惑一区二区| 精品国产欧美日韩| 成人一区而且| 亚洲三级国产| 国产精品亚洲综合在线观看| 欧美亚洲网站| 久久久久久美女精品| 欧美 日韩 国产一区二区在线视频 | 国产麻豆一区| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 亚洲高清成人| 婷婷综合网站| 亚洲欧美专区| 精品精品国产三级a∨在线| 日韩av中文在线观看| 综合激情视频| 免费日韩成人| 免费日本视频一区| 给我免费播放日韩视频| 视频一区二区三区入口| 成人影视亚洲图片在线| 久久亚洲精品中文字幕| 综合亚洲视频| 精品国产成人| 亚洲v天堂v手机在线| 中文日韩在线| 99亚洲精品| 国产传媒在线观看| 亚洲欧美日韩精品一区二区| 亚洲综合电影| 青青青国产精品| 中文日韩在线| 日韩avvvv在线播放| 欧美不卡在线| 中文字幕在线高清| 美女视频免费精品| 亚洲91视频|