久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱
機械社區
標題:
利用MSComm進行串口通信小結
[打印本頁]
作者:
robi
時間:
2011-4-17 20:39
標題:
利用MSComm進行串口通信小結
之前發過幾個帖子,求助串口通信程序的編制,得到了無能前輩的無私幫助,還有我的兩位同學的大力支持。
& U- z' h# u5 W0 A- z2 X/ x
現在程序基本完成,寫個小結,說不上經驗,畢竟我也是第一次寫通信程序,算是教訓吧。
1 b" i; C1 X, u7 o
1. 通信協議的理解
5 [2 S5 [6 T t Y! V
每個硬件設備廠商都有自己的一套通信協議,比如發送或接收命令的定義,發送命令之后返回數據的定義等等。這應該是通信程序收發數據邏輯順序的依據。
, i4 U( `4 Y: {
2. 接受、發送數據的格式
2 f. c4 ]( A6 R; U" n
MSComm接、發數據有兩種格式,在屬性InputMode里設置,一為comInputModeBinary,二進制;二為comInputModeText,為文本。
. t( r. E7 ]+ c/ y5 s8 h# k2 }6 P! k
我之前就是數據格式弄混了,所以一直出現錯誤。例如,MSComm1.Output = "R00000016U"," "里面的就是文本形式的數據,如果InputMode里設置的是InputMode=comInputModeBinary,那么發送肯定有誤。
) j2 W; M% C0 p+ a
3. 清空緩存和清空接收數據存放的緩沖數組
0 P$ G6 X; e/ x4 M1 A$ ~
每收發一次數據,就要清空緩存或是數據存放的緩沖數組。以免兩次收發的數據發生交疊,產生錯誤。
- Y4 |. D$ A7 ]$ G6 K, |) u
6 ~' c( W% C0 K8 d" l% L& Y ~
3 a% b/ X; x% ?9 ?
這三點是之前編程時最常犯的錯誤。希望能給各位需要編制串口通信程序的社友提個醒。
$ L/ X3 [6 E' z+ d
" m7 \- u2 Y' H4 a) }, ]1 m. r
再次感謝各位社友的關注和幫助!
( i: \, E" ]+ t7 y( m
6 ?! l! o9 @1 |: u: s7 v
. O) V) H& u5 D3 I- W7 o0 r1 L
u5 M" H3 `, a2 H2 h" B9 m; @1 b
作者:
metalstorm
時間:
2011-4-17 21:24
請教樓主,這類面向硬件的通訊程序大都用什么語言來寫的?
作者:
robi
時間:
2011-4-17 21:41
回復
metalstorm
的帖子
8 c2 x8 R5 t ~6 U4 J0 ]. P( J
6 a6 R8 w" S1 U: E
我做的是串口通訊,用API函數,或是MSComm。
* ~/ {4 u- ~& m9 R
通信程序C和VB都可以編。
2 q2 `- G' n/ n
作者:
happqiwei
時間:
2011-4-18 18:33
回復
robi
的帖子
. |' T9 }/ U; n" b) r' e
5 F) o7 w/ m# Z4 _0 B6 u2 ^* b
你有用VC編的和PLC通訊的程序嗎?如有的話可發到我的郵箱:
qw_mailbox@163.com
。不勝感激
作者:
robi
時間:
2011-4-18 23:07
回復
happqiwei
的帖子
: a. t$ x" j/ x: B; j" p& l% Q( }
; w5 r4 a& P5 c" S$ T* i
具體需要實現什么功能呢 不同功能的實現程序不一樣
. @4 u( Y) d8 g, Z
作者:
happqiwei
時間:
2011-4-19 10:12
回復
robi
的帖子
, o6 l5 p& F" K5 _" G/ C/ S3 j4 ]
) V* @) J/ n' n1 u
就是通過一個簡單的界面對PLC輸入輸出或輔助寄存器按位進行讀取和控制,以及讀取數據寄存器的數值。如果有三菱PLC和S7-200PLC的例子最好。主要是不知道該怎么做,想找個示例程序參考參考,謝謝!
作者:
寒秋飄雨
時間:
2011-4-19 14:00
謝謝樓樓主的分享,在此支持下~~
作者:
robi
時間:
2011-4-23 22:13
回復
happqiwei
的帖子
! A9 u. [2 e6 U9 k0 o6 K3 v4 w
$ _* a4 u) d: I2 }7 d6 t6 X
我現在正在做一個用VB監控DB72的程序。做好了再拿到論壇來跟大家探討。
( E$ n$ e. s+ E9 L/ Z1 Y
作者:
robi
時間:
2011-4-23 22:41
回復
happqiwei
的帖子
* ?; j+ f- B! R2 b# }1 Q* T0 |
) Q {2 O# [$ }- y" e% K n. @
西門子PLC可以用FB2\FB3進行DB的讀寫。可以用step7軟件講數據放入數控系統變量R參數中,再通過VB或C,使用DDE,將數據讀取出來。
% w7 t% G1 D' r9 r5 B
當然你說讀取的是位數據,用R參數可能不便。我現在準備用VB直接讀,應該不難的。
+ W1 ]# {7 X, s3 }% D
作者:
wancj
時間:
2011-4-25 12:51
有機會試試看,串口通訊現在仍然有活力呀。
作者:
robi
時間:
2011-4-25 17:25
回復
wancj
的帖子
6 d* H/ g! s5 B. A+ w; G5 m! {9 |
/ n. o5 \6 M: w. `
西門子840D早期的版本是沒有RS232串口的,后來用戶覺得很不方便,所以后期版本都有兩個RS232串口。
歡迎光臨 機械社區 (http://www.ytsybjq.com/)
Powered by Discuz! X3.5