您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > modbusTCP修改库-V2.6使用说明
PerfectioninAutomationModBusTCP功能库使用说明版本:2.60日期:06/07/2010作者:QingweiYang贝加莱工业自动化(上海)有限公司2PerfectioninAutomation目录1功能块说明...................................................................................................................................................................31.1MBserver........................................................................................................................................................................31.2MBclient..........................................................................................................................................................................42数据类型.......................................................................................................................................................................52.1modbus_server_cfg_typ..............................................................................................................................................52.2modbus_client_cfg_typ................................................................................................................................................63例程...............................................................................................................................................................................73.1ModbusTCP从站(Slave).....................................................................................................................................73.2ModbusTCP主站(Master)...................................................................................................................................93PerfectioninAutomation1功能块说明1.1MBserverMBserver功能块用于创建一个ModbusTCP从站(Slave).注意:ModbusTCP从站(Slave)寄存器容量为:1000个InputRegister、1000个OutputRegister、1000个DiscreteInputs、1000个Coils从站(Slave)最多允许3个ModbusTCP主站(Master)同时进行连接注意:当ModbusTCP主站(Master)越多,同一时间中访问的数据越多,刷新时间越长!例如:有2台上位机与PCC相连接,每一台有600个变量,刷新时间约为1秒。功能块参数I/O参数名数据类型描述INenableBOOL功能块使能INp_cfgmodbus_server_cfg_typ(给出结构体的地址)指向modbus_server_cfg_typ类型结构体的指针。此结构体将存放Modbus类型的地址。INTimeOutUDINT当ModbusSlave端检测到某条连接已经很长一段时间没有收到任何数据,则ModbusSlave端会自动关闭该连接。waitTime用于设置等待时间,1个单位为10ms。如果waitTime为0,则默认等待时间为30s(3000)INipStringSTRING[18]本机的IP地址OUTstatusUINT功能块返回的状态值功能块说明此功能块将建立一个ModbusTCP从站(Slave)实例,并根据所收到的Modbus指令对p_cfg所指向的寄存器(或线圈)进行操作。4PerfectioninAutomation1.2MBclientMBclient功能块用于创建一个ModbusTCP主站(Master)。注意:ModbusTCP主站(Master)目前只能和一个ModbusTCP从站(Slave)进行通讯服务器端同时能够对20条Modbus指令进行操作每一条指令最多同时操作122个AI/AO或者200个DI/DO,如果需要访问更多的IO点,可以拆分成多条指令同时执行功能块参数I/O参数名数据类型描述INenableBOOL功能块使能INportUINT通讯端口号ModbusTCP通讯端口号为502INserver_ip_addrSTRING(18)ModbusTCP从站(Slave)IP地址INp_cfgmodbus_client_cfg_typ(给出结构体的指针)指向modbus_client_cfg_typ类型结构体的指针,此结构体将存放相应的操作指令。INreceive_timeoutUDINT指令发出后,主站等待从站回应的超时时间,其默认值为1000ms(1s)。OUTstatusUINT功能块返回的状态值功能块说明此功能块将建立一个ModbusTCP主站(Master)实例,并将modbus_client_cfg_typ结构体中的指令循环发送至ModbusTCP从站(Slave)。5PerfectioninAutomation2数据类型2.1modbus_server_cfg_typ结构体成员数据类型描述unitmodbus_server_unit_typ存放ModbusTCP从站(Slave)的各个IO变量地址,共有4个UDINT的数组成员,用于存放不同类型IO变量的地址p_discrete_inputsUDINT[1000]:存放DI变量的地址;p_coilsUDINT[1000]:存放DO变量的地址;p_input_registersUDINT[1000]:存放AI变量的地址p_holding_registersUDINT[1000]:存放AO变量的地址地址说明:数组名称Modbus协议对应地址p_discrete_inputs[0]-p_discrete_inputs[1999]10001-11000p_coils[0]-p_coils[1999]00001-01000p_input_registers[0]-p_input_registers[1999]30001-31000p_holding_registers[0]-p_holding_registers[1999]40001-410006PerfectioninAutomationAutomationBasic语言举例将读取的DI以及AI资料分别存放在boolVal1变量和AI数组中modbus_client_cfg.unit.p_discrete_inputs[0]=adr(boolVal1)loopi=1to1999domodbus_client_cfg.unit.pinput_registers[i]=adr(AI[i])endloop变量声明表:变量名称数据类型modbus_client_cfgmodbus_server_cfg_typboolValBOOLAIINT[1000]2.2modbus_client_cfg_typ结构体成员数据类型描述action_enablemodbus_client_action_enable_typ[20]其中有single和cyclic两个成员变量:singleBOOL无间隔时间,立即执行下一条指令;cyclicBOOL间隔一定时间(可设)执行下一条指令;action_parammodbus_client_action_param_typ[20]拥有如下成员:typeUSINTModbus指令码;start_addrUINT起始地址;quantityUINT访问的IO个数;p_pvUDINTIO变量的对应存放地址timerUDINT指令间隔时间,单位为毫秒(ms)。7PerfectioninAutomation3例程3.1ModbusTCP从站(Slave)例程功能描述:如下例程将会用MBserver功能块实现ModbusTCP从站(Slave)功能,在从站中将存放1000个AI、1000个AO、1000个DI、1000个DO,供ModbusTCP主站(Master)操作Initial代码loopi=1to999domodbus_client_cfg.unit.p_discrete_inputs[i]=adr(DI[i])modbus_client_cfg.unit.p_coils[i]=adr(DO[i])modbus_client_cfg.unit.p_input_registers[i]=adr(AI[i])modbus_client_cfg.unit.p_holding_registers[i]=adr(AO[i])endloop变量声明表:变量名称数据类型modbus_client_cfgmodbus_server_cfg_typDIBOOL[1000]DOBOOL[1000]AIINT[1000]AOINT[1000]iUINT8PerfectioninAutomationCyclic代码memcpy(adr(ipAddr),“10.86.13.13”,12)MBserver_0.enable=1MBserver_0.ipString=ipAddrMBserver_0.TimeOut=4000(等待时间为40s)MBserver_0.p_cfg=adr(modbus_client_cfg)MBserver_0FUBMBserver()变量声明表:变量名称数据类型MBserver_0MBserver_typ9PerfectioninAutomation3.2ModbusTCP主站(Master)例程功能描述:如下例程将会用MBclient功能块实现ModbusTCP主站(Master)功能,在服务器端将循环执行Modbus指令,并将访问的数据存放于用户指定的变量中。在服务器端将循环执行04以及03指令(分别是读取inputregisters以及outputregisters中的值),并将值存放到变量数组中去。04指令的间隔时间为1000ms(1s),03指令的间隔时间为1500ms(1.5s),主站发出指
本文标题:modbusTCP修改库-V2.6使用说明
链接地址:https://www.777doc.com/doc-4572553 .html