modbus和Canbus

[复制链接]
lele 发表于 2022-10-24 14:59:00 | 显示全部楼层 |阅读模式

modbus


Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。   Modbus比其他通信协议使用的更广泛的主要原因有:
公开发表并且无版权要求
易于部署和维护
对供应商来说,修改移动本地的比特或字节没有很多限制
Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,举个例子,一个测量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系统(SCADA)中,Modbus通常用来连接监控计算机和远程终端控制系统(RTU)。



Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只有一个主节点设备启动指令)。
一个ModBus命令包含了打算执行的设备的Modbus地址。所有设备都会收到命令,但只有指定位置的设备会执行及回应指令(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不回应指令)。所有的Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的ModBus命令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个I/O端口,以及指挥设备回送一个或者多个其寄存器中的数据。
有许多modems和网关支持Modbus协议,因为Modbus协议很简单而且容易复制。它们当中一些为这个协议特别设计的。有使用有线、无线通信甚至短消息和GPRS的不同实现。不过设计者需要克服一些包括高延迟和时序的问题。


------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Canbus

作为ISO11898CAN标准的CANBus(ControLLer Area Net-work Bus),是制造厂中连接现场设备(传感器、执行器、控制器等)、面向广播的串行总线系统,最初由美国通用汽车公司(GM)开发用于汽车工业,后日渐增多地出现在制造自动化行业中。


CANBus数据链路层协议采用对等式(Peer to peer)通信方式,即使主机出现故障,系统其余部分仍可运行(当然性能受一定影响)。当一个站点状态改变时,它可广播发送信息到所有站点。
CANBus的信息传输通过报文进行,报文帧有4种类型:数据帧、远程帧、出错帧和超载帧。CANBus帧的数据场较短,小于8B,数据长度在控制场中给出。短帧发送一方面降低了报文出错率,同时也有利于减少其他站点的发送延迟时间。帧发送的确认由发送站与接收站共同完成,发送站发出的ACK场包含两个“空闲”位(recessive bit),接收站在收到正确的CRC场后,立即发送一个“占有”位(dominant bit),给发送站一个确认的回答。CANBus还提供很强的错误处理能力,可区分位错误、填充错误、CRC错误、形式错误和应答错误等。
CANBus应用一种面向位型的损伤仲裁方法来解决媒体多路访问带来的冲突问题。其仲裁过程是:当总线空闲时,线路表现为“闲置”电平(recessive level),此时任何站均可发送报文。发送站发出的帧起始字段产生一个“占有”电平(dominant level),标志发送开始。所有站以首先开始发送站的帧起始前沿来同步。若有多个站同时发送,那么在发送的仲裁场进行逐位比较。仲裁场包含标识符ID(标准为llbit),对应其优先级。每个站在发送仲裁场时,将发送位与线路电平比较,若相同则发送;若不同则得知优先级低而退出仲裁, 不再发送。系统响应时间与站点数无关,只取决于安排的优先权。可以看出,这种媒体访问控制方式不像Ethetnet的CSMA/CDCA协议那样会造成数据与信道带宽受损。



--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


1.将从CAN协议解析出的汽车的各种参数,如油量、车速、发动机转速、电压、等参数转换成标准的TCP  modbus协议,将相关数据可以通过网络进行传输(包括GPRS、3G、wifi等)。从而为实现汽车物联网做出第一步。

2.can协议时主动发送数据,不管其接受端是不是需要该数据其不停进行发送,在汽车的本身进行传输其优点明显实时强等优点,但在网络传输时数据量过大,即使在做一些过滤后再进行网络传输也会存在日后升级维护等多种困难。数据转换成TCP modbus协议,在网络传输中客户端(即汽车)定时向服务器发送心跳信息。服务器可以根据自己的需要获取所需的信息的。从而解决数据量过大和数据完整性的问题。

3.TCP modbus为多数组态所支持,在做汽车检测设备时会更容易些。



支持Modbus主站设备访问带有CAN接口的设备
配置简单,可在短期内完成网络通信
具有CAN帧双向缓存功能



ModbusTCP转CAN网关
GCAN-204 模块是集成 1 路标准串口和 1 路标准 CAN 总线接口的工业级的 Modbus RTU 转 CAN 模块。GCAN-204 模块串行总线端已经集成 Modbus RTU 协议,使用 GCAN-204 模块,用户可以将原本使用串行总线进行通讯的设备 (Modbus RTU 协议),在不需改变原有硬件结构的前提下使设备获得 CAN 总线 通讯接口,从而将使用 Modbus RTU 协议通信的设备快速接入 CAN 总线,构成 CAN 总线网络中的节点。
GCAN-205多一个以太接口。


他们现在用的是modbus,你们用的Canbus,中间传输都使用以太网
他们的软件不支持Canbus协议



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|RuZhuo ( 鄂ICP备16015978号-8 )

GMT+8, 2024-12-4 17:10 , Processed in 0.025002 second(s), 27 queries .

Powered by RuZhuo

快速回复 返回顶部 返回列表