modbus通讯协议在力控中的应用内容摘要:
下 8个数据位: 1 1 0 0 0 1 0 1 整个 “1”的数目是 4个。 如果便用了偶校验,帧的奇偶校验位将是 0,便得整个 “1”的个数仍是 4个。 如果便用了奇校验,帧的奇偶校验位将是 1,便得整个 “1”的个数是 5个。 如果没有指定奇偶校验位,传输时就没有校验位,也不进行校验检测。 代替一附加的停止位填充至要传输的字符帧中。 LRC检测 使用 ASCII模式,消息包括了一基于 LRC方法的错误检测域。 LRC域检测了消息域中除开始的冒号及结束的回车换行号外的内容。 LRC域是一个包含一个 8位二进制值的字节。 LRC值由传输设备来计算并放到消息帧中,接收设备在接收消息的过程中计算 LRC,并将它和接收到消息中 LRC域中的值比较,如果两值不等,说明有错误。 LRC方法是将消息中的 8Bit的字节连续累加,丢弃了进位。 LRC简单函数如下: static unsigned char LRC(auchMsg,usDataLen) unsigned char *auchMsg。 /* 要进行计算的消息 */ unsigned short usDataLen。 /* LRC 要处理的字节的数量 */ { unsigned char uchLRC = 0。 /* LRC 字节初始化 */ while (usDataLen) /* 传送消息 */ uchLRC += *auchMsg++。 /* 累加 */ return ((unsigned char)(((char_uchLRC)))。 } CRC检测 使 用 RTU模式,消息包括了一基于 CRC方法的错误检测域。 CRC域检测了整个消息的内容。 CRC域是两个字节,包含一 16位的二进制值。 它由传输设备计算后加入到消息中。 接收设备重新计算收到消息的 CRC,并与接收到的 CRC域中的值比较,如果两值不同,则有误。 东北石油大学秦皇岛分校毕业论文 11 CRC是先调入一值是全 “1”的 16位寄存器,然后调用一过程将消息中连续的 8位字节各当前寄存器中的值进行处理。 仅每个字符中的 8Bit数据对 CRC有效,起始位和停止位以及奇偶校验位均无效。 CRC产生过程中,每个 8位字符都单独和寄存器内容相或( OR),结果向最 低有效位方向移动,最高有效位以 0填充。 LSB被提取出来检测,如果 LSB为 1,寄存器单独和预置的值或一下,如果 LSB为 0,则不进行。 整个过程要重复 8次。 在最后一位(第8位)完成后,下一个 8位字节又单独和寄存器的当前值相或。 最终寄存器中的值,是消息中所有的字节都执行之后的 CRC值。 CRC添加到消息中时,低字节先加入,然后高字节。 CRC简单函数如下: unsigned short CRC16(puchMsg, usDataLen) unsigned char *puchMsg。 /* 要进行 CRC校 验的消息 */ unsigned short usDataLen。 /* 消息中字节数 */ { unsigned char uchCRCHi = 0xFF。 /* 高 CRC字节初始化 */ unsigned char uchCRCLo = 0xFF。 /* 低 CRC 字节初始化 */ unsigned uIndex。 /* CRC循环中的索引 */ while (usDataLen) /* 传输消息缓冲区 */ { uIndex = uchCRCHi ^ *puchMsgg++。 /* 计算 CRC */ uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex}。 uchCRCLo = auchCRCLo[uIndex]。 } return (uchCRCHi 8 | uchCRCLo)。 } /* CRC 高位字节值表 */ static unsigned char auchCRCHi[] = { 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, 东北石油大学秦皇岛分校毕业论文 12 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, 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, 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 }。 /* CRC低位字节值表 */ static char auchCRCLo[] = { 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 东北石油大学秦皇岛分校毕业论文 13 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 }。 ModBus 网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。 其系统结构既包括硬件、亦包括软件。 它可应用于各种数据采集和过程监控。 下表 1 是 ModBus 的功能码定义。 表 1 ModBus功能码 功能码 名称 作用 01 读取线圈状态 取得一组逻辑线圈的当前状态( ON/OFF) 02 读取输入状态 取得一组开关输入的当前状态( ON/OFF) 03 读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值 04 读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值 05 强置单 线圈 强置一个逻辑线圈的通断状态 06 预置单寄存器 把具体二进值装入一个保持寄存器 07 读取异常状态 取得 8个内部线圈的通断状态,这 8个线圈的地址由控制器决定,用户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状态 08 回送诊断校验 把诊断校验报文送从机,以对通信处理进 行评鉴 09 编程(只用于484) 使主机模拟编程器作用,修改 PC从机逻辑 10 控询(只用于484) 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码 9的 报文发送后,本功能码才发送 11 读取事 可使主机发出单询问,并随即判定操作是东北石油大学秦皇岛分校毕业论文 14 件计数 否成功,尤其是该命令或其他应答产生通信错误时 12 读取通信事件记录 可是主机检索每台从机的 ModBus事务处理通信事件记录。 如果某项事务处理完成,记录会给出有关错误 13 编程( 184/384 4。modbus通讯协议在力控中的应用
相关推荐
................... 54 连接参数 ....................................................................................................................... 55 零件计算 ...........................................
假设空气只有 O N2分别为 21%、 79%,则空气中总氧量为P2P2 理论需氧量: — O2P 所以 P2P2P2 O1 若燃烧完全P2P2P2 O1 若燃烧不完全产生 CO 须校正,即从测得的过剩氧中减 CO 氧化为 CO2所需的 O2 PP2P2 PP2 各组分的量均为奥氏分析仪所测得的百分数。 物料平衡核算 吸收塔的物料平衡
FC 给出了 CSocket类,这个类继承 于 CAsyncSocket 类,它提供了比 CAsyncSocket 更高层的 WinSock API 接口。 相比起来, CSocket 类代表了一个比 CAsyncSocket 对象更高层次的 Windows Socket的抽象, CSocket 类与 CSocketFile 类和 CArchive 类一起工作来发送和接收数据,
能力 ◆ 在工业市场 ,食品与饮料 、微电子、制药、汽车等行业 则高度的受 益于“透明就绪 ”中从 IT 系 统贯通到车 间 TCP /IP 以太网 的统一全局 网络架构 ◆ 在建筑市场 ,医疗机构、公用建筑、民用住宅、船舶等行业 在 “透明就绪 ”中使用他们 原有的 TC P/IP 以太网 网络,从而大大的 降低了实施 费用 主要技术 线 MODBU S/TCP 议 是在 MOD BUS
效果显著,操作简单。 我国的菱镁矿资源丰富,分布广泛,氢氧化镁脱色法具有广东工业大学 毕业设计 6 广阔的发展前景。 [7]研制了一种新型可再生的吸附剂,它是由甘脉和甲醛缩聚形成的一种环状缩聚物。 废水中悬浮物、经絮凝后形成的絮体、生物处理后产生的污泥或生物膜可在重力作用下进行分离,这一过程称为沉淀。 沉淀法只适用于去除 20100 μm及以上的颗粒。 化学处理方法 中和
程,程序员可以用它们来开发 TCP/IP 网络上的应用程序。 要学Inter 上的 TCP/IP网络编程,必须理解 Socket 接口。 关键字 : Socket、文件传输 、多线程 2 2 第一章 课程设计要求 题目名称 : Linux 下基于 socket 的文件传输程序设计 题目类型 : 设计型 课程设计目的 : 实现文件的上传、下载 和管理,了解 socket 编程知识