modbus主站源代码(modbus主机程序)
admin 发布:2022-12-19 19:10 183
本篇文章给大家谈谈modbus主站源代码,以及modbus主机程序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、modbus+rtu功能码是什么进制数
- 2、有人移植过RT Thread 上的那个modbus主站程序么
- 3、求 基于java的Modbus/TCP协议 源代码
- 4、哪位有MODBUS的DLL的源码,急求一份,谢谢!!
modbus+rtu功能码是什么进制数
其实任何数制都是一回事,大多协议相关资料在解释协议的时候,多采用十六进制表达MODBUS协议码,但这只是一种习惯而已,十进制表达也没有错的,只是大家不这样表达而已。无论什么协议数据,在进行信道上进行传输时都是以二进制码串的方式进行的。
有人移植过RT Thread 上的那个modbus主站程序么
1、目前项目已经在Github中开源
2、主机的相关的框架已经修改完成,初始化、配置Modbus主机相关接口与原有从机接口基本相同;
3、移植主机相关硬件配置与原有从机方式一致,需要修改FreeModbus源码中port文件夹中后缀带_m相关文件;
4、Modbus主机请求主机请求功能目前实现了所有与保持寄存器、输入寄存器、线圈及离散输入相关的功能,并测试通过
5、目前的Modbus主机请求功能是异步模式,后期考虑方便上层调用,可以同时给上层提供同步模式的控制方法;
6、主机的异常处理任务还未添加,只留了接口,后期考虑给上层提供回调接口,相关异常功能上层也能自动做处理;
7、目前最新代码同时支持Modbus主机及Modbus从机两种模式,两者互不干涉,用户可以在/FreeModbus/modbus/mbconfig.h中自行裁剪。
求 基于java的Modbus/TCP协议 源代码
public static void TestModbus() throws Exception{
IpParameters params = new IpParameters();
params.setHost("localhost");//地址
params.setPort(502);//端口
ModbusFactory factory = new ModbusFactory();
ModbusMaster master = factory.createTcpMaster(params, true);
// 初始化
try {
master.init();
readHoldingRegistersTest(master,1,0,3);
} catch (ModbusInitException e) {
e.printStackTrace();
} finally {
master.destroy();
}
}
public static void main(String[] args) {
try {
TestModbus();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
private static void readHoldingRegistersTest(ModbusMaster master,
int slaveId, int start, int len) {
try {
// ReadInputRegistersRequest request = new ReadInputRegistersRequest(
// slaveId, start, len);
// ReadInputRegistersResponse response = (ReadInputRegistersResponse) master
// .send(request);
ReadHoldingRegistersRequest request = new ReadHoldingRegistersRequest(
slaveId, start, len);
ReadHoldingRegistersResponse response = (ReadHoldingRegistersResponse) master
.send(request);
if (response.isException()) {
System.out.println("Exception response: message="
+ response.getExceptionMessage());
} else {
ByteQueue byteQueue= new ByteQueue(12);
response.write(byteQueue);
System.out.println(byteQueue);
System.out.println(Arrays.toString(response.getShortData()));
short[] list = response.getShortData();
for(int i = 0; i list.length; i++){
System.out.print(list[i] + " ");
}
}
} catch (ModbusTransportException e) {
e.printStackTrace();
}
}
哪位有MODBUS的DLL的源码,急求一份,谢谢!!
See the following, hope to help.
// 档名: RS232_x.C--
// 缘由:为了VIGOR PLC modbus与PC图控软体的RS232连线
// 使用说明:
//
/*
01: Read coil status
02: Read input status
03: Read holding register
04: Read input registers
05: Force single coil
06: Preset single register
15: Force multiple coils
16: Preset multiple registers
22: Mask write register
23: Read/Write registers
*/
#pragma option w32
#include "msvcrt.h--"
#include "windows.h--"
#include "wingdi.h--"
//2006/10/19 HK
#include "winbase.h--"
#include "winerror.h--"
#include "advapi.h--"
#include "winuser.h--"
#define NUM 50
#define NUM_1 NUM+1
#define PI 3.141592654
#define ID_TIMER 1
byte Text="欢迎您 RS232 MODBUS测试程式 2006/10/19 ";
// 还是取好记一点的名字较好,避免用 a、b、c 来取名
WNDCLASS wc;
//WNDCLASSEX wc;
HWND hwnd;
DCB dcb; //2006/9/29 HK
// 用小写 p 开头的变数多半是指标功能。
//站号为1,Y0设为ON
byte spd[8]={1,5,0,0,255,0,140,58}; //1,5,0,0,ff,0,8c,3a
//站号为1,Y0设为OFF
byte spdx[8]={1,5,0,0,0,0,205,202}; //1,5,0,0,0,0,cd,ca
byte abcd[8];
MSG msg;
HDC hdc;
HMENU hMenu ;
HANDLE hFile;
void main()
{
/*
wc.cbSize=sizeof(WNDCLASSEX);//无此行用RegisterClassEx会看不到视窗
*/
wc.hInstance = hThisInst;
wc.lpszClassName = "Hi" ;
wc.lpfnWndProc = #WndProc ;
wc.style = CS_HREDRAW | CS_VREDRAW ;
wc.hbrBackground = GetStockObject(WHITE_BRUSH);
wc.hCursor = LoadCursor(0,IDC_CROSS);
RegisterClass(#wc);
hwnd=CreateWindowEx(0,"Hi",#Text,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
0,0,hThisInst,0) ;
SetTimer (hwnd, ID_TIMER, 1000, NULL);
hFile=CreateFile("Com4",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if ( hFile == INVALID_HANDLE_VALUE ) //判断COM开启是否成功
{
MessageBox(0,"开启通讯埠 错误!!","Comm Error",MB_OK);
return;
}
//将dcb位址传入,以开启通序参数
GetCommState(hFile ,#dcb ); //得知目前COM的状态
dcb.BaudRate = 19200; //设定鲍率19200
dcb.ByteSize = 8; // 8 bits位元组
dcb.Parity = NOPARITY; //同位元检查为none
dcb.StopBits = ONESTOPBIT; //Stop bit =1
//设定通讯埠
if( !SetCommState(hFile,#dcb) )
{
MessageBox(0,"通序埠设定错误!!!","Set Error",MB_OK);
CloseHandle(hFile);
return;
}
ShowWindow(hwnd,1);
while (GetMessage(#msg,0,0,0))
DispatchMessage(#msg);
}
POINT pt[50];
long WndProc(HWND hwnd, UINT msg,WPARAM wparam, LPARAM lparam) // 视窗函式
{
static int cxClient, cyClient ;
static POINT pt [NUM_1] ;
static BOOL fFlipFlop = FALSE ;
HBRUSH hBrush ;
int i;
float f;
PAINTSTRUCT ps ;
RECT rect ;
switch (msg)
{
case WM_TIMER :
!fFlipFlop ;
InvalidateRect (hwnd, NULL, FALSE) ;
if(fFlipFlop)
WriteFile(hFile,#spd,8,#abcd,NULL);
else
WriteFile(hFile,#spdx,8,#abcd,NULL);
return 0 ;
case WM_SIZE :
cxClient = LOWORD (lparam) ;
cyClient = HIWORD (lparam) ;
break;
case WM_PAINT :
hdc = BeginPaint (hwnd, #ps) ;
GetClientRect (hwnd, #rect) ;
if(fFlipFlop)
{
hBrush = CreateSolidBrush ( RGB(255,0,0) ) ;
FillRect (hdc,#rect, hBrush) ;
DrawText (hdc, "站号为1,Y0设为ON", 16, #rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
}
else
{
hBrush = CreateSolidBrush ( RGB(0,255,0) ) ;
FillRect (hdc,#rect, hBrush) ;
DrawText (hdc, "站号为1,Y0设为OFF", 17, #rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
}
MoveToEx (hdc, 0, cyClient / 2, NULL) ;
LineTo(hdc, cxClient, cyClient / 2) ;
for (i = 0 ; i = NUM ; i++)
{
pt[i].x = i * cxClient /NUM;
f = sin(PI * 2 / NUM * i);
pt[i].y = float 1-f * cyClient/2 ;
}
Polyline (hdc, #pt,NUM_1) ;
EndPaint (hwnd, #ps) ; // 这行原本有错喔!改了变数名字就看出来了
DeleteObject (hBrush) ;
break;
case WM_DESTROY :
KillTimer (hwnd, ID_TIMER) ;
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd,msg,wparam,lparam);
}
modbus主站源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于modbus主机程序、modbus主站源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-07pb超级报表源代码(pb报表工具)[20240507更新]
- 05-07简历源代码可以上传照片的简单介绍[20240507更新]
- 05-07广告切换源代码免费下载(广告切换源代码免费下载安装)[20240507更新]
- 05-06阁楼网源代码(阁楼是什么网站)[20240506更新]
- 05-06源代码管理资源管理器(资源管理器运行代码)[20240506更新]
- 05-06代码源软件库(程序代码库)[20240506更新]
- 05-06人脸识别源代码pdf的简单介绍[20240506更新]
- 05-06包含超市管理系统java源代码的词条[20240506更新]
- 05-06商城app源代码免费(商城App源码)[20240506更新]
- 05-06包含游戏源代码不同的模式的词条[20240506更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接