资源描述:
《free modbus详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、freemodbus之协议模块2007-12-2710:43:32 作者: 来源:freemodbus之Modbus协议配置 浏览次数:844 文字大小:【大】【中】【小】简介:DetailedDescription详细描述#include"mb.h"Thismoduledefinestheinterfacefortheapplication.ItcontainsthebasicfunctionsandtypesrequiredtousetheModbusprotocolstack.Aty...Detail
2、edDescription详细描述 #include"mb.h"Thismoduledefinestheinterfacefortheapplication.ItcontainsthebasicfunctionsandtypesrequiredtousetheModbusprotocolstack.AtypicalapplicationwillwanttocalleMBInit()first.IfthedeviceisreadytoanswernetworkrequestsitmustthencalleMBEnabl
3、e()toactivatetheprotocolstack.InthemainloopthefunctioneMBPoll()mustbecalledperiodically.ThetimeintervalbetweenpoolingdependsontheconfiguredModbustimeout.IfanRTOSisavailableaseparatetaskshouldbecreatedandthetaskshouldalwayscallthefunctioneMBPoll().这个模块为应用定义了接口。它
4、包括了使用Modbus协议栈所必须的基本功能函数和类型。一个典型的应用程序将会首先调用eMBInit()函数。如果该设备需要回应网络请求,则其必须调用eMBEnable()函数来激活协议栈。在主循环中,函数eMBPoll()将会被周期性调用。两次调用的时间间隔决定于Modbus的超时时间设置。如果使用了RTOS,用户则必须创建一个独立的任务,并且该任务必须一直调用函数eMBPoll()。 //InitializeprotocolstackinRTUmodeforaslavewithaddress10=0x0AeMBI
5、nit(MB_RTU,0x0A,38400,MB_PAR_EVEN);//EnabletheModbusProtocolStack.eMBEnable( );for(;;){ //CallthemainpollingloopoftheModbusprotocolstack. eMBPoll( ); ...} Defines定义#define MB_TCP_PORT_USE_DEFAULT 0 Enumerations枚举类型enum eMBMode { MB_RTU, MB_ASCII, MB
6、_TCP }Modbus协议的模式:RTU ,ASCII 和TCPenum eMBRegisterMode { MB_REG_READ, MB_REG_WRITE }Modbus寄存器的模式:READ和WRITEenum eMBErrorCode { MB_ENOERR, MB_ENOREG, MB_EINVAL, MB_EPORTERR, MB_ENORES, MB_EIO, MB_EILLSTATE, MB_ETIMEDOUT }错误码:没有错误,没有寄存器,无效, , ,IO错误,无效 ,超
7、时enum eMBParity { MB_PAR_NONE, MB_PAR_ODD, MB_PAR_EVEN }Modbus数据帧的校验类型:无校验,偶校验,奇校验 Functions函数eMBErrorCode eMBInit (eMBMode eMode,UCHARucSlaveAddress,UCHARucPort,ULONGulBaudRate, eMBParity eParity)协议初始化函数输入参数:eMBMode eMode,Modubus协议模式UCHARucSlaveAddress, 子模块地址U
8、CHARucPort, 端口ULONGulBaudRate, 波特率eMBParity eParity 串行数据的奇偶校验eMBErrorCode eMBTCPInit (USHORTusTCPPort)如果使用了TCP协议,则用该函数进行初始化eMBErrorCode eMBClose (void)关闭Modbus协议栈eMBErrorCod