怎么做一个上位机软件,实现RS232串口与我的单片机通信?简单一点的方法

民俊 激光智能制造 2021-03-15 11:36:39
我用的是别的公司的一个控制卡,硬件和下位机这些都是做好的,通讯协议已经建立好了,比如我发送字符AAA,他回复给我实时的电流值xxx;我发送BBB,他回复给我实时的电压值yyy。
现在我想自己做个简单的上位机程序,不用手动发送指令,让他一直显示实时电流值和电压值,可以选COM口。
高手指教一下有没有最简单的方法?或者有没有什么现成的仿真程序可以用?
...全文
2045 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
清晨曦月 元老 2021-05-26
  • 打赏
  • 举报
回复
像这种就不要有太高要求了。 发送AAA等待回复,超时或者不合法再发(既然AAA超时或者不合法你也就不用指望BBB能怎么样了),直到对方把AAA回复好了(你的程序自认为的),这期间BBB权当没变。 然后掉过头来再BBB呗。 懒就写俩Timer,启动一个timer1,得到你认为的可靠数据就timer1.enabled=false,timer2.enabled=true。timer2也类似处理就完了。
six2me 2021-03-23
  • 打赏
  • 举报
回复
网上有好多串口调试工具,含代码的,可以实现手动发送接收,你在这个基础上增加你的协议就行了,接收使用datareceived分析字节,处理数据用线程就ok了,重点是搞清楚如何将你们的协议文本转换成代码,看你上面说的协议你都没深入理解。要多下点功夫。
luj_1768 2021-03-22
  • 打赏
  • 举报
回复
啊,COM口编程。一定是要用C语言的了,其他语言的、现在都是“脱裤子的协议封装”。如果用个集线坞,说不好就直接通过了。累死谁!
  • 打赏
  • 举报
回复
可是怎么区分返回的数据是电流值还是电压值呢?两个文本框,xxx去A框,yyy去B框怎么实现呢?数据都是同时返回的。
  • 打赏
  • 举报
回复
引用 2 楼 杀马特丶蛮牛的回复:
弄个timer,每隔一秒发一次AAA,BBB,datareceived事件处理收到的消息展示到界面就好了,
可是怎么区分返回的数据是电流值还是电压值呢?A,B两个文本框,电流值去A框,电压值去B框。AAA和BBB都是同时输出的,返回值xxx,yyy也是同时返回的呀。
sichuanwww 2021-03-21
  • 打赏
  • 举报
回复
wanghui0380 2021-03-21
  • 打赏
  • 举报
回复
就算你们不打算实现标准工业实现,起码也给我个通道号把,通道1的管电压,通道2的管电流,这样的修改也不算为难plc那边吧。 说实话你们这协议定不定其实都无所谓,就算底层那个是水货,那么他直接开放modubs让我直接读线圈都比现在的协议好啊,线圈1:电压。线圈2:电流都好,因为modubs他不用开发plc端现成的,而你这边主从modbus一问一答库也多的很。 不用这种脱裤子的协议封装更简单干脆
wanghui0380 2021-03-21
  • 打赏
  • 举报
回复
加锁后,一次只进行一种查询,故可以解决你说“他们一起返回,你区别不出到底是什么类型的数据问题” ps:建议你们还是把协议问题搞定,这种目前这种协议过于敷衍了
wanghui0380 2021-03-21
  • 打赏
  • 举报
回复
引用 8 楼 民俊 激光智能制造 的回复:
可是怎么区分返回的数据是电流值还是电压值呢?两个文本框,xxx去A框,yyy去B框怎么实现呢?数据都是同时返回的。
从你们的协议开始。 如果你们的协议本身订立的有问题。那么只能认为他是一问一答式。那么就像楼上所有人的回答。 单锁轮询一问一答 比如: 定时任务一:获取数据(电流) 定时任务2:获取数据(电压) 获取数据(数据类型) { 加锁 根据数据类型发送数据 等待数据返回 开锁 } 基本上你们的通讯协议订立的并不适合进行多任务和双工通讯,只能使用这种单任务和单工的通讯方式
青岛小帅锅 2021-03-19
  • 打赏
  • 举报
回复
可以使用串口的Datareceived事件,尽量使用线程和委托,不要使用Timer。做一些字符串处理和异常判定即可(比如接收不到数据,或数据长度不对等)
三楼の郎 2021-03-15
  • 打赏
  • 举报
回复
好多年前写过的一个VB.Net的简单示例, https://blog.csdn.net/CityBird/article/details/44229025?spm=1001.2014.3001.5501 参考一下简单改改就好了
ziqi0716 2021-03-15
  • 打赏
  • 举报
回复
搜索C#串口通讯。 说实话,这个看似简单,但实际上你们这个协议是有缺陷的,数据粘包,断包,数据丢失,数据错误等,都是没有处理的。 一个健壮的通讯协议一般要包含包头,数据体,包尾三部分,这样才能处理数据传输中的断包,粘包,数据校验等等问题。 你要是学习而已,那你们这个协议就这样也行,就当练手。如果要出产品,你们这个协议可是很不可靠的。
兔子-顾问 2021-03-15
  • 打赏
  • 举报
回复
我的博客有写过一些上位机的入门文章可以参考,c#的。
杀马特丶蛮牛 2021-03-15
  • 打赏
  • 举报
回复
弄个timer,每隔一秒发一次AAA,BBB,datareceived事件处理收到的消息展示到界面就好了,
精锐掷矛手 2021-03-15
  • 打赏
  • 举报
回复
下载一个net串口通信Demo,在它基础上改吧

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧