当前位置: 代码迷 >> C# >> 【产业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式
  详细解决方案

【产业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式

热度:49   发布时间:2016-05-05 03:03:00.0
【工业串口和网络软件通讯平台(SuperIO)教程】九.重写通讯接口函数,实现特殊通讯方式

SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf

1.1    统一的IO接口

开发一套设备驱动同时具备串口和网络通讯能力,通讯接口在逻辑上是统一的,在此基础上串口和网络也有自己的IO通讯特点,根据不同的通讯方式,可以把IIOChannel实例转换成ISessionSocket或ISessionCom实例。如下图:

 

 

1.2     通讯要求

一个请求命令分两次发送,每次发送数据时的串口校验位不同。先发送地址信息,这时串口的配置为Baud,m,8,1;再发送请求命令信息,这时的串口配置为Baud,s,8,1。这样完成一次请求数据的命令。如下图:

 

 

1.3    重写通讯接口

设备驱动继承SuperIO.Device.RunDevice1抽象类,里边有一个虚函数Send(IIOChannel io, byte[] sendbytes),io参数为通讯操作实例,sendbytes参数为要发送的数据信息,可以重写这个接口函数,完成特殊的发送数据要求。如下图:

 

 

接收完数据,需要把串口设置修改成默认的配置,避免影响其他设备驱动的通讯,如下图:

 

 

作者QQ:504547114

交流QQ群:54256083

官方网址:http://www.bmpj.net

1楼张文的博客
可否适用Modbus协议 或有示例可参考。
Re: 唯笑志在
@张文的博客,引用可否适用Modbus协议 或有示例可参考。,,Modbus本身也是byte数据包,可以把Modbus协议转换成中间的协议驱动,进行通讯,没有问题,Modbus tcp也是适用的。