91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9.85MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-17
  • 語言: 其他
  • 標簽: modbus??

資源簡介

modbus主機源碼.rar。

資源截圖

代碼片段和文件信息



/*
????此為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++]=‘\r‘;
?modbus.ModSenbuf[i++]=‘\n‘;
?modbus.ModSenbuf[i++]=0;
?modbus.ModRecount=0;
???Modbus_sendstring(?(char*)modbus.ModSenbuf);
???time10ms.plcwaitms=0;
?
?while(time10ms.plcwaitms ?{
????
?}
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++]=‘\r‘;
?modbus.ModSenbuf[i++]=‘\n‘;
?modbus.ModSenbuf[i++]=0;
???Modbus_sendstring(?(char*)modbus.ModSenbuf);
?time10ms.plcwaitms=0;
?while(time10ms.plcwaitms ?{
????
?}
???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自動流控制收發\CORE\core_cm3.c

?????文件??????85714??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\CORE\core_cm3.h

?????文件??????15503??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\CORE\startup_stm32f10x_hd.s

?????文件???????2901??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\MODBUS\modbus.c

?????文件????????594??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\MODBUS\modbus.h

?????文件???????2529??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\MODBUS\modbus_uart.c

?????文件????????156??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\MODBUS\modbus_uart.h

?????文件???????4149??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\MODBUSCRC\ModbusCRC.c

?????文件????????645??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\MODBUSCRC\ModbusCRC.h

?????文件????????460??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\TIME\timer.c

?????文件????????100??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\HARWARE\TIME\timer.h

?????文件????????399??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\keilkilll.bat

?????文件???????3942??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\OBJ\core_cm3.crf

?????文件????????104??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\OBJ\core_cm3.d

?????文件??????11224??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\OBJ\core_cm3.o

?????文件?????349955??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\OBJ\delay.crf

?????文件???????1669??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\OBJ\delay.d

?????文件?????383216??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\OBJ\delay.o

?????文件?????????19??2018-07-08?22:43??主機源碼\MODBUS從機成功\modbus從機1.0自動流控制收發\OBJ\ExtDll.iex

............此處省略401個文件信息

評論

共有 條評論