modbus主机源码.rar
modbus主机源码.rar。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11895 2018-07-08 22:43 主机源码MODBUS_ASC 主机modbus_app.c
文件 2790 2018-07-08 22:43 主机源码MODBUS_ASC 主机modbus_app.h
文件 892 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_ASC.C
文件 208 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_ASC.H
文件 70 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_reg(1).h
文件 87 2018-07-08 22:43 主机源码MODBUS_ASC 主机Modbus_reg.c
文件 4691 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_UART.C
文件 474 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_UART.H
文件 1923 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODREG.TXT
文件 3720 2018-07-08 22:43 主机源码MODBUS_ASC 主机Plc_cmd.c
文件 1259 2018-07-08 22:43 主机源码MODBUS_ASC 主机plc_cmd.h
文件 17273 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发COREcore_cm3.c
文件 85714 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发COREcore_cm3.h
文件 15503 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发COREstartup_stm32f10x_hd.s
文件 2901 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus.c
文件 594 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus.h
文件 2529 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus_uart.c
文件 156 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus_uart.h
文件 4149 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSCRCModbusCRC.c
文件 645 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSCRCModbusCRC.h
文件 460 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWARETIME imer.c
文件 100 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWARETIME imer.h
文件 399 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发keilkilll.bat
文件 3942 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJcore_cm3.crf
文件 104 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJcore_cm3.d
文件 11224 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJcore_cm3.o
文件 349955 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJdelay.crf
文件 1669 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJdelay.d
文件 383216 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJdelay.o
文件 19 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJExtDll.iex
............此处省略401个文件信息
/*
此为MODBUS主机ASC协议
MODBUS测试时的两组数据(已测试能正常接收该数据包)
主机发 :010300110001EA+回车换行
:0103020001F9+回车换行
*/
#include “function_config.h“
#if _MODBUSEN_
#include “modbus_app.h“
#include “timer.h“
MODBUS modbus;
PLCREG modreg;//MODBUS寄存器
void Modbus_Init() //
{
Rs485RT_Init(); //RS485收发控制脚
RS485RT_0;//接收
Rs485UART_Init();
Rs485_GetAdd(); //读取本板子地址--因为是主机程序,所以在该函数中将MODBUS地址直接设置为2
}
void SetPLC_Reg(u16 regu16 datu16 waitms) //将PLC的reg寄存器设置为dat
{
u8 ich;
i=0;
modbus.ModRecount=0;
modbus.ModSenbuf[i++]=‘:‘;//asc起始字符
//Treg=reg;
HextoAsc(PLCMODBUSADD&modbus.ModSenbuf[i]); //地址
i+=2;
HextoAsc(0x06&modbus.ModSenbuf[i]); //功能码 0x03
i+=2;
HextoAsc(reg/256&modbus.ModSenbuf[i]); //要读的寄存器起始地址
i+=2;
HextoAsc(reg%256&modbus.ModSenbuf[i]); //
i+=2;
HextoAsc(dat/256&modbus.ModSenbuf[i]); //要写入的数据
i+=2;
HextoAsc(dat%256&modbus.ModSenbuf[i]); //
i+=2;
ch=Calc_LRC(&modbus.ModSenbuf[1]i-1); //减去冒号进行校验码计算
HextoAsc(ch&modbus.ModSenbuf[i]); //校验码
i+=2;
modbus.ModSenbuf[i++]=‘
‘;
modbus.ModSenbuf[i++]=‘
‘;
modbus.ModSenbuf[i++]=0;
modbus.ModRecount=0;
Modbus_sendstring( (char*)modbus.ModSenbuf);
time10ms.plcwaitms=0;
while(time10ms.plcwaitms< waitms)
{
}
Mosbus_Event(); //处理 PLC返回的数据包
}
void GetPLC_Reg(u16 regu8 rcountu16 waitms) //读取PLC某寄存器的值
{
u8 ich;
i=0;
modbus.ModRecount=0;
modbus.CurrReg=reg;
modbus.ModSenbuf[i++]=‘:‘;//asc起始字符
HextoAsc(PLCMODBUSADD&modbus.ModSenbuf[i]); //地址
i+=2;
HextoAsc(0x03&modbus.ModSenbuf[i]); //功能码 0x03
i+=2;
HextoAsc(reg/256&modbus.ModSenbuf[i]); //要读的寄存器起始地址
i+=2;
HextoAsc(reg%256&modbus.ModSenbuf[i]); //
i+=2;
HextoAsc(rcount/256&modbus.ModSenbuf[i]); // 要读的寄存器个数
i+=2;
HextoAsc(rcount%256&modbus.ModSenbuf[i]); // 要读的寄存器个数
i+=2;
ch=Calc_LRC(&modbus.ModSenbuf[1]i-1); //减去冒号进行校验码计算
HextoAsc(ch&modbus.ModSenbuf[i]); //校验码
i+=2;
modbus.ModSenbuf[i++]=‘
‘;
modbus.ModSenbuf[i++]=‘
‘;
modbus.ModSenbuf[i++]=0;
Modbus_sendstring( (char*)modbus.ModSenbuf);
time10ms.plcwaitms=0;
while(time10ms.plcwaitms< waitms)
{
}
Mosbus_Event(); //处理PLC返回的数据包
}
//
void Mosbus_Event() //处理 PLC返回的数据包
{
u8 TempFun;
volatile u16 Tregtxcount;
if(modbus.ModReflag==0) return ; //收到了MODBUS ASC数据包
// Modbus_sendstring((char *)modbus.ModRecbuf); //发回MODBUS收到的数据帧
modbus.ModAdd= Get_hex((u8 *)(&modbus.ModRecbuf[1]));//返回数据包的从机地址
if(PLCMODBUSADD==modbus.ModAdd) //PLC地址吻合
{
TempFun = Get_hex((u8 *)(&modbus.ModRecbuf[3]));//得到功能码
if(TempFun>=0x80) //返回的功能码大于128
{
}
else
{
modbus.ModFun=TempFun;
if(modbus.ModFun==0x06) //对PLC写入操作后返回的数据包
{
tx= Get_hex((u8 *)(&modbus.ModRecbuf[7])); //得到寄存器号
tx<<=8;
tx|=Get_hex((u8 *)(&modbus.Mod
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11895 2018-07-08 22:43 主机源码MODBUS_ASC 主机modbus_app.c
文件 2790 2018-07-08 22:43 主机源码MODBUS_ASC 主机modbus_app.h
文件 892 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_ASC.C
文件 208 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_ASC.H
文件 70 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_reg(1).h
文件 87 2018-07-08 22:43 主机源码MODBUS_ASC 主机Modbus_reg.c
文件 4691 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_UART.C
文件 474 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODBUS_UART.H
文件 1923 2018-07-08 22:43 主机源码MODBUS_ASC 主机MODREG.TXT
文件 3720 2018-07-08 22:43 主机源码MODBUS_ASC 主机Plc_cmd.c
文件 1259 2018-07-08 22:43 主机源码MODBUS_ASC 主机plc_cmd.h
文件 17273 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发COREcore_cm3.c
文件 85714 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发COREcore_cm3.h
文件 15503 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发COREstartup_stm32f10x_hd.s
文件 2901 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus.c
文件 594 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus.h
文件 2529 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus_uart.c
文件 156 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSmodbus_uart.h
文件 4149 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSCRCModbusCRC.c
文件 645 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWAREMODBUSCRCModbusCRC.h
文件 460 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWARETIME imer.c
文件 100 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发HARWARETIME imer.h
文件 399 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发keilkilll.bat
文件 3942 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJcore_cm3.crf
文件 104 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJcore_cm3.d
文件 11224 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJcore_cm3.o
文件 349955 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJdelay.crf
文件 1669 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJdelay.d
文件 383216 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJdelay.o
文件 19 2018-07-08 22:43 主机源码MODBUS从机成功modbus从机1.0自动流控制收发OBJExtDll.iex
............此处省略401个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)