资源简介
C#环境下的Modbus类,很精简.原创.包括modbus ASCII和RTU两种传输模式.当然也就有LRC和CRC两种校验方式咯
代码片段和文件信息
using System;
using System.Data;
/*
PDU:功能码+数据
ADU:地址码+PDU+校验码
*/
namespace MODBUS
{
public class clModbus
{
public byte DevAddr;
public byte FunCode;
//public UInt16 RegAddr;
//public UInt16 RegCnt;
public byte[] MbBuf;
public clModbus()
{
MbBuf = new byte[1 + 2 + 2 + 2 * 252 + 2 + 2 + 1];
DevAddr = 1;
FunCode = 3;
}
private byte ToAscii(int v int pos)
{
if (pos >= 8) return 0;
v >>= pos * 4;
v &= 0xf;
if (v > 9) return (byte)(v - 10 + ‘A‘);
else return (byte)(v + ‘0‘);
}
public UInt32 frameToAscii(byte[] PduBuf UInt32 Len)
{
byte lrctmp;
UInt32 i;
MbBuf[0] =(byte) ‘:‘;
MbBuf[1] = ToAscii(DevAddr 1); MbBuf[2] = ToAscii(DevAddr 0);
MbBuf[3] = ToAscii(FunCode 1); MbBuf[4] = ToAscii(FunCode 0);
lrc =(byte)(DevAddr + FunCode);
for (i=0; i < Len; i++)
{
tmp = PduBuf[i];
lrc += tmp;
MbBuf[i*2+5] = ToAscii(tmp 1); MbBuf[i*2+6] = ToAscii(tmp 0);
}
i = i * 2 + 5; lrc = (byte)(0xff-lrc+1);//取补码
MbBuf[i++] = ToAscii(lrc 1); MbBuf[i++] = ToAscii(lrc 0);
MbBuf[i++] = 0x0d; MbBuf[i++] = 0x0a;
return i;
}
public UInt32 frameToRtu(byte[] PduBuf UInt32 Len)
{
byte ucCRCHi = 0xFF;
byte ucCRCLo = 0xFF;
int iIndex;
UInt32 i;
byte[] aucCRCHi =
{
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x00 0xC1 0x81 0x40
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x00 0xC1 0x81 0x40
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x00 0xC1 0x81 0x40
0x01 0xC0 0x80 0x41 0x01 0xC0 0x80 0x41 0x00 0xC1 0x81 0x40
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x00 0xC1 0x81 0x40
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41 0x01 0xC0 0x80 0x41
0x00 0xC1 0x81 0x40 0x00 0xC1 0x81 0x40 0x01 0xC0 0x80 0x41
0x01 0
相关资源
- C# TIP文件生成和拆解
- C#解析HL7消息的库135797
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
- C#版保龄球记分代码
评论
共有 条评论