介绍了Modbus通信协议的特点,结合作者的实践经验,介绍基于MODBUS协议下工控机为主站,PLC及智能仪表为从站的通讯的实现方法.

  可编程控制器由于抗干扰能力强,可靠性高,编程简单,性能价格比高,在工业控制领域得到越来越广泛应用。基于PLC的控制系统多数情况下会以微机为主机,PLC为从机.完成对生产过程的自动控制,工艺参数的显示和修改.MODBUS RTU规约是目前国际上普遍采用的主流通讯协议之一.随着越来越多的企业开始向生产和管理的自动化转变,MODBUS得到了广泛的应用.

  MODBUS 是一种工业控制系统串行通信协议, 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。Modbus协议包括ASCII、RTU、TCP等,它需要对数据进行校验,其中RTU模式采用16位CRC校验.当控制器设为在Modbus网络上以RTU(远程终端单元)模式通信,在消息中的每个8bit字节包含两个4bit的十六进制字符.这种方式的主要优点是:在同样的波特率下,可比ASCII码传送更多的数据.

  本套系统采用RS-485作为电气接口.它具有干扰抑制性好、传输距离长、组网方便等特点,非常适合组成工业级的多机通信系统.网络采用总线型结构,半双工,终端加电阻.电缆选用带有金属网状屏蔽层的双绞线.它可以消除由于磁耦合引起的共模噪声,而金属屏蔽层可以阻断电容、电磁及高频磁耦合引起的噪声。另选用RS232/RS485转换器。通过转换器,我们就可以利用工控机的RS232串口,快速地开发基于RS485串口的上位机通信软件。

  本系统中的可编程控制器采用西门子S7-200系列.使用指令库中的MBUS_INIT和MBUS_SLAVE指令..以下是系统中用于PLC的通讯程序:

  //将从站地址设为1,将端口0设为9600波特,将校验设为偶数, //允许存取所有的I、Q和AI数值,允许存取1000台保存寄存器(2000个字节) //从VB0开始。

  1 初始化 为加快开发速度,上位机通讯软件的编程可以使用MSCOMM控件,用控件对通讯软件进行设定需要使用的串口地址、波特率、校验方式、数据缓冲区等初始化操作.

  2 命令字发送 MODBUS规定完整的命令应由从机地址、功能码、数据段和校验码组成。命令字发送必须严格遵守该规定。计算机发送命令:[设备地址] [命令号01] [起始寄存器地址高8位] [低8位] [读取的寄存器数高8位] [低8位] [CRC校验的低8位] [CRC校验的高8位]

  05 强置单线圈 强置一个逻辑线 预置单寄存器 把具体二进值装入一个保持寄存器

  10 控询(只用于484) 可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完成其操作任务,仅在含有功能码9的报文发送后,本功能码才发送

  11 读取事件计数 可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其他应答产生通信错误时

  12 读取通信事件记录 可是主机检索每台从机的ModBus事务处理通信事件记录。如果某项事务处理完成,记录会给出有关错误

  14 探询(184/384 484 584) 可使主机与正在执行任务的从机通信,定期控询该从机是否已完成其程序操作,仅在含有功能13的报文发送后,本功能码才得发送

  15 强置多线圈 强置一串连续逻辑线 预置多寄存器 把具体的二进制值装入一串连续的保持寄存器

  19 重置通信链路 发生非可修改错误后,是从机复位于已知状态,可重置顺序字节

  在这些功能码中较长使用的是1、2、3、4、5、6号功能码,使用它们即可实现对下位机的数字量和模拟量的读写操作。

  CRC编码校验误码率极低,是一种比较可靠的检验方式。该校验码是通过数据序列对生成多项式进行二进制除法取余数得到的。采用CRC-16校验,生成的多项式为X16+ X15+ X2+ X1。

  CRC域是两个字节,包含一16位的二进制值。它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。

  CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。

  CRC 产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。整个过程要重复8次。在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。下面是它的VC代码:

  上位机的通讯程序可参照上位机与PLC的通讯程序进行设计,注意将上位机的串口地址设为其它的地址(例如2)。在此不作过多介绍。

  多台智能仪表作为MODBUS从站的网络,每个从站必须设为唯一的从站地址,并设定好波特率。仪表要遵循MODBUS规约的通信帧结构对上位机的命令进行解析。非呼叫对象要能及时重新恢复等待接受状态。响应呼叫的仪表要解析命令并进行相应的功能处理,对非法的命令要能回报报错信息。

  的要求以及布线成本都大大降低。监控程序的设计完全符合厂方的要求。另因其设备分散、成本要求苛刻的特点,充分利用RS485总线和现有成熟而规范的通信协议能最大限度地节约成本。实践表明,MODBUS具有开放性好、功能强、通讯效率高等特点。

  ①凡本网注明来源:CK365测控网的所有作品,版权均属于CK365测控网,转载请必须注明CK365测控网。违反者本网将追究相关法律责任。

  ②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的稿件来源,并自负版权等法律责任。

  ③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

  more测控名词Modbus通信协议还没有Modbus通信协议相关的测控名词的解释您可以点击