
通信
文章平均质量分 81
海蓝树
做个有思想的“猿”
展开
-
C#基于事件驱动的多串口多线程串口通讯软件架构设计
最近写一个串口通讯程序,客户对界面,容量要求都比较高。要求支持多串口同时工作。于是自己提炼了一个架构,用于抛砖引玉。 本来想用VC,基于成本考虑,决定采用.Net,而且C#的事件比VC的消息容易控制些,只是跨线程触发的时候稍微注意下。先上个图上图是整个通讯控制架构,根据配置文件加载实例,每个串口打开一个线程用以处理命令队列。命令加以优先级来区分轻重缓急。转载 2015-04-11 14:28:40 · 10063 阅读 · 2 评论 -
modbus 入门篇,不冗长,很好理解!
先来简单分析一条MODBUS-RTU报文,例如:01 06 00 01 00 17 98 04 01 06 00 01 00 17 98 04 从机地址 功能号 数据地址 数据转载 2015-04-15 14:33:41 · 11435 阅读 · 0 评论 -
C#使用TCP/IP与ModBus进行通讯
1. ModBus的 Client/Server模型2. 数据包格式及MBAP header (MODBUS Application Protocol header)3. 大小端转换4. 事务标识和缓冲清理5. 示例代码 0. MODBUS MESSAGING ON TCP/IP IMPLEMENTATION GUIDE 下载地址:http://www转载 2015-04-14 09:46:56 · 9106 阅读 · 0 评论 -
c# MODBUS协议 上位机
C#写了一款上位机监控软件,基于MODBUS_RTU协议。 软件的基本结构:采用定时器(Timer控件)为时间片。串口采用serialPort1_DataReceived中断接收,并进行MODBUS格式判断。把正确接收的数据取出,转换为有特定的结构体中。数据通过时间片实时刷新。MODBUS协议(这里不介绍了,网上有很多的权威资料)。 串口接收问题这里采用的是MODBUS_R转载 2015-04-14 11:06:48 · 2816 阅读 · 1 评论 -
C#线程同步的几种方法
我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。 在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就转载 2015-04-13 09:00:49 · 1165 阅读 · 0 评论 -
对组态王OPC服务器值的读取c#版本
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime.Inter转载 2015-04-12 10:33:39 · 4804 阅读 · 3 评论 -
串口 COM口 USB-TTL RS-232 RS-485 不同标准 区别 释疑
转载地址:http://blog.sina.com.cn/s/blog_6566538d0100r7p8.html有几个概念玩嵌入式的同志经常搞混。也不怨谁,现在的卖家为了一点可怜的销量都在故意混淆串口的概念。如果你发现本文有哪里含糊,或者任何一点有可能影响理解的地方,请留言,我会修正以便帮助后来的朋友。Point (所有要点都在这,请仔细阅读):1、串口、COM口是指转载 2015-04-11 14:35:32 · 1241 阅读 · 0 评论 -
C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
我假设读者已经了解了c#的语法,本文是针对刚打算解除串口编程的朋友阅读的,作为串口编程的入门范例,也是我这个系列的基础。我们的开发环境假定为vs2005(虽然我在用vs2010,但避免有些网友用2005,不支持lambda,避免不兼容,就用2005来做例子) 一个基本的串口程序,既然是个程序了。我们就先从功能说起,包含串口选择波特率选择打开关转载 2015-04-11 13:58:55 · 504 阅读 · 0 评论 -
C#中串口组件的使用方法总结及上位机制作方法
一、创建Windows窗体项目 二、添加SerialPort组件 三、默认产生serialPort1对象四、设置串口属性三种方法(本实例用第三种)1.设置下面的属性2.代码实现3.用我封装的一个类来实现 C# 封装了用于对 Serialport类属性的配置类转载 2015-04-11 14:13:59 · 11561 阅读 · 2 评论 -
C# 串口操作系列(3) -- 协议篇,二进制协议数据解析
我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面。 我们先说一下通讯协议。通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确。基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44转载 2015-04-11 14:00:55 · 794 阅读 · 0 评论 -
C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?
第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁。天哪,我可不是武断,算了。不要太绝对了。99.9%的人吧,都遇到过这个问题。我想只有一半的人真的解决了。另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了。 你看到我的文章,就放心吧,这问题有救了。我们先回顾一下上一篇中的代码转载 2015-04-11 14:00:04 · 704 阅读 · 0 评论 -
c#如何实现RTU远程数据采集功能及RTU在水利工程中的运用
好久没有动手去写博客了,近两年时间忙碌着工作,未曾回过头细数做过的路程,感觉有点思想颓废了,之前一直从事的水利工程类开发及实施工作,考虑各方面情况下,从11年开始转行投入到电力智能电网的软件开发工作,一转行就到了如今,虽行业上跨度自我感觉挺大的,不过对于一个从事软件开发工作者来说,从了解客户需求、工程实施,甚至是编码开发到后期维护都是大同小异的.讲了这么多的废话,现在开始今天的主题了,在水转载 2015-04-18 08:37:53 · 4016 阅读 · 0 评论 -
How to write a DCOM server in C# 如何用C#编写DCOM服务器
先讲讲.net Remoting与DCOM的区别:.net Remoting 是在DCOM等基础上发展起来的一种技术,它的主要目的是实现跨平台、跨语言、穿透企业防火墙。DCOM是通过TCP/IP通道安全的进程间通信,而.NET remoting 不是。任何进程包括windows服务都能寄宿在DCOM服务器中。如果你已经十分清楚地知道了COM的话,可以参考下面的几点加深你对DCOM的了解。转载 2015-04-22 14:58:21 · 1947 阅读 · 0 评论 -
F5负载均衡配置一例 (型号:BIG-LTM-1600-4G-R)
F5 提供的解决方案保证每个用户的应用实现安全、高速和高可用,帮助企业获得最大投资回报。通过在网络中增加智能和可管理性而降低应用的负荷,F5使应用得以优化,从而提高运行速度,并降低资源消耗。此次实施的F5型号为BIG-LTM-1600-4G-R,外形如下图: 注:本文仅供参考。一、实施环境概述:本次采用的为旁路接入方式,F5的1.1和1.2两个接口分别接入应用双机环境的主、备交换机。二、实施拓扑:...转载 2018-03-22 07:56:16 · 6654 阅读 · 0 评论