Modbus 运行和长处 理解工业智能化中的 协定 (modbus协议)

modbus_rtuV3.0通讯协定串口通讯灵活链接库DLL完美版 点击:|回复:

宣布于:2008-12-2019:46:48楼主

modbus_rtuV3.0通讯协定串口通讯灵活链接库DLL(以下简称DLL),是为满足工业通讯须要,针对工业畛域要求上位机对PLC、工业仪表通讯实时采集与控制的组态编程而设计。本DLL是驳回Delphi言语开发的规范串口通讯库,具备以下特点:1)、遵照modbusrtu串口通讯协定(施耐德、西门子、台达、永宏等品牌PLC及各类工业仪表等均允许本协定);2)、允许多串口并发操作,允许多线程串口通讯,将串口通讯对主程序的影响降至最低;3)、实时性、牢靠性好,通用性强;4)、实用于多PLC(下位机)联网和上位机通讯,满足多方面的须要(联网时可驳回485总线式);5)、函数接口配置全,操作繁难,允许modbus的大局部读写配置函数;6)、允许USB、PC裁减卡等裁减串口号;7)、允许多种操作系统win9x/win2000/winXP(标注Win32DLL);8)、易于极速开发(VC等非RAD开发环境的开发);9)、降级原有函数调用模式驳回数组调用数据出现与接纳,初学者极速入门;10)、可在多种编程环境下经常使用,例如VB、VC、Delphi等开发环境;11)、允许modbusrtu规范的配置代码01、02、03、04、05、06、15、16,并且对相关配置代码作了加长可以读取下位机中的双字、单精度浮点等类型数据,愈加合乎工业智能化畛域的工控软件的开发。软件版本降级及相关说明:modbus_rtu.dllV3.0串口通讯链接库,成功了对坚持寄存器40001~4XXXX区数据读写(FCN03:读、FCN16:写;FCN06写单个数据);对逻辑线圈00001~0XXXX的读写(FCN01:读取一组线圈,FCN05:强置复线圈,FCN15强置多线圈);对输入形态10001~1XXXX的读(FCN02);对输入寄存器30001~3XXXX的读(FCN04)。wangjun于2008年在原有modbus.dllV2.0版基础上的降级版,重写了函数结构,驳回数据接纳和发送缓冲区(数组)模式传递,读出和写入单元数据经常使用更繁难。关于16位整数和32位整数读取写入均按有符号整数解决,小数的前往按单精度浮点型(2进制浮点)解决,提供高位在前或低位在前两种32整数和浮点数据的读取模式。

留意:实例在经常使用时不能超出试用版的地址限度,否则不可正确通讯。

龙帅上班室为您提供专业串口通讯控件,也可为您订制公用通讯协定串口控件。目前龙帅系列串口通讯协定控件包含modbus_rtu、三菱FXPLC编程口、欧姆龙HostLink、西门子PPI等多个系列产品。淘宝店:电话:13912935690025-84359545腾讯QQ:157610979邮箱:wjun7610@yahoo.com.cnchinawanglong@163.com157610979@QQ.com

正在下载,请期待……下载附件需0积分! 收藏 约请回答 回复楼主 投诉 宣布于:2008-12-2019:47:591楼

DLL带有完整电子版手册和经常使用DEMO。

回复 援用 投诉

生命之手

宣布于:2011-04-0108:11:162楼 回复 援用 投诉

miy_gongkong

宣布于:2011-04-0112:14:123楼

顶一下!

回复 援用 投诉 宣布于:2011-05-1621:51:224楼modbus_rtu.dllV3.3modbusrtu通讯协定串口通讯灵活链接库DLL(以下简称DLL),是为满足工业通讯须要,针对工业畛域要求上位机对PLC、工业仪表通讯实时采集与控制的组态编程而设计。本DLL是驳回Delphi言语开发的规范串口通讯库,具备以下特点:1)、遵照modbusrtu串口通讯协定;2)、允许多串口并发操作,允许多线程串口通讯,将串口通讯对主程序的影响降至最低;3)、实时性、牢靠性好,通用性强;4)、实用于多PLC(下位机)联网和上位机通讯,满足多方面的须要;5)、函数接口配置全,操作繁难,允许欧姆龙PLC的绝大局部地址的读写配置函数;6)、允许USB、PC裁减卡等裁减串口号;7)、允许多种操作系统win9x/win2000/winXP(规范Win32DLL);8)、易于极速开发(VC等非RAD开发环境的开发);9)、降级原有函数调用模式驳回数组调用数据出现与接纳,初学者极速入门;10)、可在多种编程环境下经常使用,例如VB、VC、Delphi、PB、Labview、易言语等开发环境;11)、裁减了函数配置读取下位机中的双字、单精度浮点等类型数据,愈加合乎工业智能化畛域的工控软件的开发。软件版本降级及相关说明:modbus_rtu.dllV3.3串口通讯链接库,成功了对坚持寄存器40001~4XXXX区数据读写(FCN03:读、FCN16:写;FCN06写单个数据);对逻辑线圈00001~0XXXX的读写(FCN01:读取一组线圈,FCN05:强置复线圈,FCN15强置多线圈);对输入形态10001~1XXXX的读(FCN02);对输入寄存器30001~3XXXX的读(FCN04)。wangjun于2008年在原有modbus.dllV2.0,历经V3.0、V3.2版基础上的降级版,重写了函数结构,驳回数据接纳和发送缓冲区(数组)模式传递,读出和写入单元数据经常使用更繁难。关于16位整数和32位整数读取写入均按有符号整数解决,小数的前往按单精度浮点型(2进制浮点)解决读取模式。提供裁减配置函数,繁难用户成功混合数据读取。能够同时满足32个串口并发状况下的反经常常使用。modbus_rtu.dllV3.3分为完美版和单机版两个版本。 回复 援用 投诉 宣布于:2011-05-1621:51:485楼在VC中经常使用DLL普通都是驳回灵活声明的模式,函数说明中给出的是Delphi的函数原型,在VC中声明时只需留意一下类型的对应即可,Delphi中的longint类型对应VC中的int类型Delphi中的Pchar对应VC中的char*,上方给出重要函数的声明:在经常使用的文件的cpp中声明一个句柄:HINSTANCEhinstDLL;用来标识导入的灵活链接库。1)、按下例说明声明相关各个函数:(在cpp文件的头处声明)typedefint(_stdcall*pOpen)(intnport,intBaudRate,int> 回复 援用 投诉 宣布于:2011-05-1621:52:136楼modbusrtu协定DLL缓冲区传递配置函数包含:1)、mbrtuClearBuf肃清复位DLL缓存区;2)、mbrtufcn01Buf01配置码:取得一组逻辑线圈的以后形态(ON/OFF);3)、mbrtufcn02Buf02配置码:取得一组开关输入的以后形态(ON/OFF);4)、mbrtufcn03Buf03配置码:在一个或多个坚持寄存器中取得以后16位整数值(字);5)、mbrtufcn04Buf04配置码:在一个或多个输入寄存器中取得以后16位整数值(字);6)、mbrtufcn03DIntBuf03配置码双字:在2个或多个坚持寄存器中取得以后32位整数值(双字由2个寄存器组成);7)、mbrtufcn04DIntBuf04配置码双字:在2个或多个输入寄存器中取得以后32位整数值(双字由2个寄存器组成);8)、mbrtuIntDllBufRead读DLL整数缓存区值;9)、mbrtufcn03FloatBuf03配置码浮点:在2个或多个坚持寄存器中取得以后32位单精度浮点(浮点由2个寄存器组成);10)、mbrtufcn04FloatBuf04配置码浮点:在2个或多个输入寄存器中取得以后32位单精度浮点(浮点由2个寄存器组成);11)、mbrtuFloatDllBufRead读DLL浮点缓存区值;12)、mbrtuWriteIntDllBuf写DLL整数缓存区值;13)、mbrtufcn15Buf15配置码:强置一串延续逻辑线圈的通断形态(ON/OFF);14)、mbrtufcn16Buf16配置码:把16位整数值(字)装入一串延续坚持寄存器;15)、mbrtufcn16DIntBuf16配置码双字:把32位整数值(双字由2个寄存器组成)装入2个或多个延续坚持寄存器;16)、mbrtuWriteFloatDllBuf写DLL浮点缓存区值;17)、mbrtufcn16FloatBuf16配置码浮点:把32位位单精度浮点(浮点由2个寄存器组成)装入2个或多个延续坚持寄存器;这里,仅对PB开发环境经常使用DLL缓存区数据传递启动调用给出了声明模式和调用举例,其余非VC、VB、Delphi等言语须要经常使用DLL缓冲区启动数据传递时,调用DLL声明请参考本言语对Windows规范DLL的规定和函数原型启动调用。能够正确传递数组的开发环境如VB、VC、delphi不介绍经常使用该局部裁减配置函数。 回复 援用 投诉 宣布于:2011-05-1621:52:417楼这里以VB程序为例叙说一下如何启动混合数据的读写。混合数据的读写,普通都是经常使用modbus规范地址40001~4XXXX地址区启动操作这里40001、40002、40005、40006是16位整数元件,40003/40004是32位整数元件,40007/40008是32位单精度浮点元件1、混合数据的读DimnodeI,addrI,ReadIntAsLongDimbuffer(1024)AsLong‘定义一个数据接纳缓冲区整型为1024,浮点型为256DimstrrealAsStringTimerRead.Enabled=FalseIf(modbuson=1)Or(mbrtuComTrue(ComPort)<>1)Or(Readtrue=-1)ThenExitSubnodeI=Val(Combnode.Text)addrI=0‘modbus地址从40001开局,偏移地址0-7,8个存储器值ReadInt=mbrtufcn03(ComPort,nodeI,addrI,8,buffer(0))‘读取字元件值IfReadInt=8ThenReadText(0).Text=Trim(Str(buffer(0)))ReadText(1).Text=Trim(Str(buffer(1)))IfOptionWord01.valueThen‘不同品牌的下位机在双字和浮点的数据存储上有所不同,有高位在前和低位在前之分ReadText(2).Text=Trim(Str(Int16ToInt32(buffer(3),buffer(2))))ElseReadText(2).Text=Trim(Str(Int16ToInt32(buffer(2),buffer(3))))EndIfReadText(3).Text=Trim(Str(buffer(4)))ReadText(4).Text=Trim(Str(buffer(5)))IfOptionWord01.valueThen‘不同品牌的下位机在双字和浮点的数据存储上有所不同,有高位在前和低位在前之分strreal=Trim(Str(Int16ToFloat32(buffer(7),buffer(6))))Elsestrreal=Trim(Str(Int16ToFloat32(buffer(6),buffer(7))))EndIfReadText(5).Text=Format(strreal,"0.000")EndIf2、混合数据的写DimSendIntAsIntegerDimSendFloatAsSingleDimnodeI,addrI,addrBit,ReadInt,SendDintAsLongDimnameplcAsStringDimbuffer(1024)AsLong‘定义一个数据发送缓冲区整型为1024,浮点型为256nodeI=Val(Combnode.Text)addrI=0‘modbus地址从40001开局,偏移地址0-7,8个存储器值‘将混合的数据转换成16位整数,数组SendInt=Val(SendText(0).Text)‘16位整数buffer(0)=SendIntSendInt=Val(SendText(1).Text)‘16位整数buffer(1)=SendIntSendDint=Val(SendText(2).Text)‘32位整数IfOptionWord01.valueThen‘不同品牌的下位机在双字和浮点的数据存储上有所不同,有高位在前和低位在前之分buffer(2)=Int32ToInt_16l(SendDint)buffer(3)=Int32ToInt_16h(SendDint)Elsebuffer(2)=Int32ToInt_16h(SendDint)buffer(3)=Int32ToInt_16l(SendDint)EndIfSendInt=Val(SendText(3).Text)‘16位整数buffer(4)=SendIntSendInt=Val(SendText(4).Text)‘16位整数buffer(5)=SendIntSendFloat=Val(SendText(5).Text)‘32位浮点数IfOptionWord01.valueThen‘不同品牌的下位机在双字和浮点的数据存储上有所不同,有高位在前和低位在前之分buffer(6)=Float32ToInt_16l(SendFloat)buffer(7)=Float32ToInt_16h(SendFloat)Elsebuffer(6)=Float32ToInt_16h(SendFloat)buffer(7)=Float32ToInt_16l(SendFloat)EndIf‘将混合的数据转换成16位整数,数组Callmbrtufcn16(ComPort,nodeI,addrI,8,buffer(0))‘按16位整数写入下位机 回复 援用 投诉

yuzhuanghui

宣布于:2012-10-0916:32:048楼ddfgsgfgsadfasgagsf 回复 援用 投诉

yuzhuanghui

宣布于:2012-10-3117:12:549楼fhsfdsfasfdafa 回复 援用 投诉

rays530656236

宣布于:2016-04-0510:17:3610楼

很牛X,NXNXNXNX

回复 援用 投诉 宣布于:2016-04-2516:04:5211楼

modbus_rtu.dllV3.3分为完美版和单机版两个版本,多谢了!

回复 援用 投诉

学无

宣布于:2018-07-1316:51:4512楼 回复 援用 投诉

qq177876178

宣布于:2018-08-1908:52:3013楼

modbus_rtu.dllV3.3分为完美版和单机版两个版本,多谢了!

回复 援用 投诉

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论