人妻暴雨中被强制侵犯在线,亚洲国产欧美日韩精品一区二区三区,四虎影免看黄,国产无人区二卡三卡四卡不见星空

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 5865|回復: 10

利用MSComm進行串口通信小結

[復制鏈接]
1#
發(fā)表于 2011-4-17 20:39:15 | 只看該作者 |倒序瀏覽 |閱讀模式
之前發(fā)過幾個帖子,求助串口通信程序的編制,得到了無能前輩的無私幫助,還有我的兩位同學的大力支持。
, C- p4 G# R; ^. A4 ^' I* C3 f現(xiàn)在程序基本完成,寫個小結,說不上經驗,畢竟我也是第一次寫通信程序,算是教訓吧。( t( C$ c& k* I5 V
1. 通信協(xié)議的理解
9 i3 M" Y/ U" C' T" m0 ]( ], L每個硬件設備廠商都有自己的一套通信協(xié)議,比如發(fā)送或接收命令的定義,發(fā)送命令之后返回數據的定義等等。這應該是通信程序收發(fā)數據邏輯順序的依據。
+ y  N! k1 u% i. Q2. 接受、發(fā)送數據的格式
1 h9 \' E. I7 |/ p' jMSComm接、發(fā)數據有兩種格式,在屬性InputMode里設置,一為comInputModeBinary,二進制;二為comInputModeText,為文本。" X& O0 f2 f, G! q3 B2 ]1 G
我之前就是數據格式弄混了,所以一直出現(xiàn)錯誤。例如,MSComm1.Output = "R00000016U"," "里面的就是文本形式的數據,如果InputMode里設置的是InputMode=comInputModeBinary,那么發(fā)送肯定有誤。0 [( |: o3 G* U- g0 w7 I: ]! B; J
3. 清空緩存和清空接收數據存放的緩沖數組
" X, M6 o0 c3 B6 P* P5 ~0 A每收發(fā)一次數據,就要清空緩存或是數據存放的緩沖數組。以免兩次收發(fā)的數據發(fā)生交疊,產生錯誤。* |; L2 ]  V7 t

* E. U2 h% @0 j7 u4 E# E, g2 n
) ^% G! N" G6 d這三點是之前編程時最常犯的錯誤。希望能給各位需要編制串口通信程序的社友提個醒。) h4 t$ }$ T2 X+ w# m7 H

# Z/ {  i% s3 U4 y7 O4 u再次感謝各位社友的關注和幫助!" K( p& z/ P& H5 ]* z0 g, K" B* C

  s/ H3 F# `# t  z& j7 \" m8 ^: Y4 a7 _% S2 ?
0 v  v5 l6 }# B2 ]+ N" b, h

點評

可能給你幫了倒忙了……  發(fā)表于 2011-4-17 21:00
樓主這種精神值得學習,解決了問題上來還晾下,很多大俠一問不知歸處了。哈哈  發(fā)表于 2011-4-17 20:55

評分

參與人數 2威望 +11 收起 理由
metalstorm + 1
舟航 + 10

查看全部評分

2#
發(fā)表于 2011-4-17 21:24:35 | 只看該作者
請教樓主,這類面向硬件的通訊程序大都用什么語言來寫的?
3#
 樓主| 發(fā)表于 2011-4-17 21:41:38 | 只看該作者
回復 metalstorm 的帖子
) C. I% x) @8 t8 t6 X0 _3 B
$ `: H2 f- G& `4 L我做的是串口通訊,用API函數,或是MSComm。
  N2 L# F8 i. B% n4 J5 N; F2 _4 t# J通信程序C和VB都可以編。
" K; a5 n  f9 p( ?

評分

參與人數 1威望 +1 收起 理由
metalstorm + 1

查看全部評分

4#
發(fā)表于 2011-4-18 18:33:30 | 只看該作者
回復 robi 的帖子
# h* H. B- T5 m% a- }( E* N  h* [9 g9 F: M. s% H3 x  x; ?
你有用VC編的和PLC通訊的程序嗎?如有的話可發(fā)到我的郵箱:qw_mailbox@163.com。不勝感激
5#
 樓主| 發(fā)表于 2011-4-18 23:07:21 | 只看該作者
回復 happqiwei 的帖子2 d+ O% K1 f, T- N: c5 A
6 _$ k8 ?* Z8 F
具體需要實現(xiàn)什么功能呢 不同功能的實現(xiàn)程序不一樣
& Z; o% v  h1 ^# Y
6#
發(fā)表于 2011-4-19 10:12:41 | 只看該作者
回復 robi 的帖子
( d# D+ x/ t( T5 l6 L8 h% o( v9 Q, n* g' |
就是通過一個簡單的界面對PLC輸入輸出或輔助寄存器按位進行讀取和控制,以及讀取數據寄存器的數值。如果有三菱PLC和S7-200PLC的例子最好。主要是不知道該怎么做,想找個示例程序參考參考,謝謝!
7#
發(fā)表于 2011-4-19 14:00:31 | 只看該作者
謝謝樓樓主的分享,在此支持下~~
8#
 樓主| 發(fā)表于 2011-4-23 22:13:31 | 只看該作者
回復 happqiwei 的帖子
3 g  g8 D+ n) y; b6 |* g$ I( d0 N2 z6 ~2 y
我現(xiàn)在正在做一個用VB監(jiān)控DB72的程序。做好了再拿到論壇來跟大家探討。2 @4 h! Y6 q6 @: \$ b
9#
 樓主| 發(fā)表于 2011-4-23 22:41:26 | 只看該作者
回復 happqiwei 的帖子
+ C( H% g% X/ s
% T. A) I$ o  W# l: h西門子PLC可以用FB2\FB3進行DB的讀寫??梢杂胹tep7軟件講數據放入數控系統(tǒng)變量R參數中,再通過VB或C,使用DDE,將數據讀取出來。* P, h  F+ H. \
當然你說讀取的是位數據,用R參數可能不便。我現(xiàn)在準備用VB直接讀,應該不難的。9 o/ F" k* R3 R! l" K: [
10#
發(fā)表于 2011-4-25 12:51:47 | 只看該作者
有機會試試看,串口通訊現(xiàn)在仍然有活力呀。
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規(guī)則

Archiver|手機版|小黑屋|機械社區(qū) ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-7-18 01:50 , Processed in 0.069521 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回復 返回頂部 返回列表