性质不同 modbus:modbus是应用于电子控制器上的一种通用语言。profibus:profibus是全球第一个真正用于工业现场的总线协议。应用不同 modbus: Modbus在现实生活中应用非常广泛,很多工业电子设备的系统中基本都有它的存在。profibus: 常用于PLC与现场设备的数据通信和控制。
主体不同:Profibus是用于设备级控制系统与分散式I/O的通信协议,具有高速低成本的特点;Modbus是一种串行通信协议,是Modicon公司于1979年为使用可编程逻辑控制器(PLC)通信而发表。传输特点不同:Profibus具有高速低成本的特点;Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。
二者总线协议不同 (1)PROFINET是基于工业以太网的总线协议,通过网线进行数据传输。(2)Modbus是基于串口485/232/422的现场总线协议,通过无线数据电台等进行数据传输。二者传输方式不同 (1)PROFINET通过网线进行数据传输。(2)Modbus通过无线数据电台等进行数据传输。
通信方式不同,Profibus使用RS485和光纤等多种通信介质,可以实现点对点或者多点通信,而Modbus主要使用RS232/RS485进行串行通信。数据传输速度不同,Profibus的数据传输速度可以达到12Mbps,是一种高速通讯协议。而Modbus的数据传输速度则较低,一般为9600或115200bps。
其中Bdata是一个四字节的字节数组,通过这个方法,就能将字节数组转换为浮点类型数据。需要注意的是,PLC的字节顺序可能与电脑的不同,有0123,1032,3210,2301等四种组合,需要统一调整为0123顺序,然后用上述方法转换。
在Modbus现场总线系统中,浮点数的数据传输一般有两种办法,一种是将浮点数按照量程映射到一个寄存器中(2个字节),例如0到65535对应0到100%,还有一种就是采用两个寄存器四个字节传输浮点数。
在组态王软件中解析读取指令的响应,并将响应中的数据转换为浮点数。需要注意的是,西门子S7-200 PLC的Modbus寄存器地址是按字节编址的,因此读取浮点数时需要考虑字节顺序(大端或小端)的问题。另外,S7-200 PLC还需要使用字寄存器格式来传输浮点数数据,这需要进行特定的数据转换。
计算机三种记录数据方式,原码,反码,补码。反码和补码可用于表示负数。通常使用补码表示负数,因为补码更能反映出负数的实际对应关系。
主设备可单独和从设备通信,也能以广播方式和所有从设备通信。如果单独通信,从设备返回一消息作为回应,如果是以广播方式查询的,则不作任何回应。Modbus协议建立了主设备查询的格式:设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。
它由传输设备计算后加入到消息中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。CRC是先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节和当前寄存器中的值进行处理。
1、本人从事工业控制上位机软件开发多年,主要是使用C#框架进行开发,在C#语言中,可以使用BitConverter.ToSingle(FByte1, 0)类似的方法实现数据转换,FByte1是一个四字节的字节数组,ToSinger是转换为单精度浮点数(float)的方法。同理也可以转换为长整型,方法不同。
2、工控机(HMI)读取PLC的数据,需要安装组态软件,并且组态软件能支持你的PLC,例如:MCGS(国内厂家,昆仑通态),支持OMRON、西门子、AB、LG等全系列PLC。
3、使用MODBUS通信:工控机开发MODBUS通信读取PLC的数据:VC或VB或C#都可以 MODUBS TCP通信:使用OPC方式,VC或VB或C#编程读取PLC数据,或使用WINSOCK编程读取PLC数据。上述只提供了方法,具体自己找相关资料参阅。
4、NI Lookout NI Lookout是市场上最为易用的工控组态软件,运用Lookout,可以很方便地实现对工业过程的监控和数据采集。Lookout支持数十种PLC的通信协议,比如Modbus,AB和Siemens等。Lookout同样支持OPC通信。Lookout还可以同NI的硬件产品FieldPoint无缝集成。
1、重新开启轮询,采用成熟的轮询程序,如Zane版的程序。Modbus是PLC应用中常用的通讯手段,轮询是在进行一个控制器连接多个从站的通讯时常用的编程手段,由于ST语言在数据处理上的优势。
2、方法如下:将485转以太网网关接通电源。将485转以太网网关的RS-485接口与要读取数据的设备连接。在博途中添加新设备,设置IP地址和端口号。在设备树中双击网关图标,进入设备组态界面。选择协议类型为Modbus,设置从站地址、起始寄存器、寄存器数量等参数。
3、modbus通讯日志。打开博图软件。在主界面找到WINCC数据中断界面并打开。最后找到错误代码即可。
4、可能需要清除程序后才能连接,软件环境有问题,驱动部分未正常加载,博图任何一个版本目前都没有S7-1200的仿真功能,可以将S7-1200的机型改为1500,从而变相地实现仿真,不过,S7-1200的专用指令将不能模拟。
5、解决方法:port硬件端口号,就是RS485的端口号ID,MODBUS 通讯参数设置,停止位1位2位对应有校验或没有校验功能块参数管脚设置,都是可以改的,改改就能明白了。程序初始化,modbus rtu 主站初始化调用。程序主体,学scl编程,一定要手敲代码,保证你每天都敲代码100行。
6、不可以每个地址的读取肯定要分开操作,甚至同一个站地址的非连接数据的读取也可能需要多帧报文(取决于从站所支持的功能)。