请问一下各位关于modbus/tcp的问题

m0_37580103 2018-07-05 08:59:05
1.我写了一个tcp服务器的程序,程序应该是没有问题的,但是老提示网口打开失败。。是不是因为我用的是校园网,没有固定的物理IP,不知道测程序的时候怎么配置自己的电脑,,最好有附图说明。。
2.另外问一下各位有没有CRC-CCITT的c语言代码,最好是计算法不是查表法的,谢谢
...全文
235 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-07-06
  • 打赏
  • 举报
回复
/***** crc16.c *****/
#include <stdio.h>

#define CRC16_DNP 0x3D65u // DNP, IEC 870, M-BUS, wM-BUS, ...
#define CRC16_CCITT 0x1021u // X.25, V.41, HDLC FCS, Bluetooth, ...

//Other polynoms not tested
#define CRC16_IBM 0x8005u // ModBus, USB, Bisync, CRC-16, CRC-16-ANSI, ...
#define CRC16_T10_DIF 0x8BB7u // SCSI DIF
#define CRC16_DECT 0x0589u // Cordeless Telephones
#define CRC16_ARINC 0xA02Bu // ACARS Aplications

#define POLYNOM CRC16_DNP // Define the used polynom from one of the aboves

// Calculates the new crc16 with the newByte. Variable crcValue is the actual or initial value (0).
unsigned short crc16(unsigned short crcValue, unsigned char newByte) {
int i;

for (i = 0; i < 8; i++) {
if (((crcValue & 0x8000u) >> 8) ^ (newByte & 0x80u)){
crcValue = (crcValue << 1) ^ POLYNOM;
} else {
crcValue = (crcValue << 1);
}
newByte <<= 1;
}
return crcValue;
}

unsigned short exampleOfUseCRC16(unsigned char *Data, int len){

unsigned short crc;
int aux = 0;

crc = 0x0000u; //Initialization of crc to 0x0000 for DNP
//crc = 0xFFFFu; //Initialization of crc to 0xFFFF for CCITT

while (aux < len){
crc = crc16(crc,Data[aux]);
aux++;
}

return (~crc); //The crc value for DNP it is obtained by NOT operation

//return crc; //The crc value for CCITT
}

int main() {
unsigned char d[10]={0,1,2,3,4,5,6,7,8,9};

printf("0x%04hX\n",exampleOfUseCRC16(d,10));//0x1078
return 0;
}
zgl7903 2018-07-05
  • 打赏
  • 举报
回复
在同一台电脑上同时运行服务器端和客户端程序, 就可以测试 (IP地址127.0.0.1 )
查表法速度是最快的
http://djb69.blog.163.com/blog/static/6776323420100158391490/
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 Uppercomputer-20200727 关于 由于上个版本 2021年6月27日推送的出现修改EF后 出现无法修改参数 现在紧急推送 请各位下载最新版本 现在已经推送大数据Web网页看板支持手机与电脑端预览 后端未实现 需要自己部署在IIS 修改SQL路径等操作 小白请止步! ! 具体部署方法后面我出出一期视频现在先全面实现Web网页后端数据交互与软件之间的关系 关于本软件其他软件访问上位机通讯基本完成代码在服务器端项目 近期添加了一个比较重要的版本运行开发人员对本软件进行界面设计 不再是固定界面后期会添加上不在软件运行时控件编辑开发人员可在IDE写好代码运行 添加发那科机器人内部协议可直接访问 机器人内部输入输出 寄存器等 后期会添加一些机器人专用控件 本软件说明 本软件适用于工业自动化作为上位机对下位设备进行监控与控制使用简易通过拖拽控件修改参数实现对设备的监控 。 但是需要二次开发 因为不是每个上位机项目都合适 此框架好处就是不用理会软件通讯PLC等设备的协议与链接 只要开发者 对bool 操作的控件 实现了 Buttonbase接口 就可以读写固定PLC设备 文本类型 实现TextBoxbase 接口 就可以读写固定PLC设备 每个控件的刷新状态都在 自定义Uppercomputer20200727.控件重做.控件类基文件夹下 bool类型是:Buttonbase 文本类型是:TextBox_base 。 后续会持续添加控件实现多元化,更贴合,更方便,更快捷的设计理念目前支持简单常用的控件-支持三菱PLC--MC协议(3E帧)--西门子S7协议MODBUS TCP协...
先展示下效果 https://pan.quark.cn/s/a4b39357ea24 Uppercomputer-20200727 关于 由于上个版本 2021年6月27日推送的出现修改EF后 出现无法修改参数 现在紧急推送 请各位下载最新版本 现在已经推送大数据Web网页看板支持手机与电脑端预览 后端未实现 需要自己部署在IIS 修改SQL路径等操作 小白请止步! ! 具体部署方法后面我出出一期视频现在先全面实现Web网页后端数据交互与软件之间的关系 关于本软件其他软件访问上位机通讯基本完成代码在服务器端项目 近期添加了一个比较重要的版本运行开发人员对本软件进行界面设计 不再是固定界面后期会添加上不在软件运行时控件编辑开发人员可在IDE写好代码运行 添加发那科机器人内部协议可直接访问 机器人内部输入输出 寄存器等 后期会添加一些机器人专用控件 本软件说明 本软件适用于工业自动化作为上位机对下位设备进行监控与控制使用简易通过拖拽控件修改参数实现对设备的监控 。 但是需要二次开发 因为不是每个上位机项目都合适 此框架好处就是不用理会软件通讯PLC等设备的协议与链接 只要开发者 对bool 操作的控件 实现了 Buttonbase接口 就可以读写固定PLC设备 文本类型 实现TextBoxbase 接口 就可以读写固定PLC设备 每个控件的刷新状态都在 自定义Uppercomputer20200727.控件重做.控件类基文件夹下 bool类型是:Buttonbase 文本类型是:TextBox_base 。 后续会持续添加控件实现多元化,更贴合,更方便,更快捷的设计理念目前支持简单常用的控件-支持三菱PLC--MC协议(3E帧)--西门子S7协议MODBUS TCP协...
Uppercomputer-20200727 关于 由于上个版本 2021年6月27日推送的出现修改EF后 出现无法修改参数 现在紧急推送 请各位下载最新版本 现在已经推送大数据Web网页看板支持手机与电脑端预览 后端未实现 需要自己部署在IIS 修改SQL路径等操作 小白请止步! ! 具体部署方法后面我出出一期视频现在先全面实现Web网页后端数据交互与软件之间的关系 关于本软件其他软件访问上位机通讯基本完成代码在服务器端项目 近期添加了一个比较重要的版本运行开发人员对本软件进行界面设计 不再是固定界面后期会添加上不在软件运行时控件编辑开发人员可在IDE写好代码运行 添加发那科机器人内部协议可直接访问 机器人内部输入输出 寄存器等 后期会添加一些机器人专用控件 本软件说明 本软件适用于工业自动化作为上位机对下位设备进行监控与控制使用简易通过拖拽控件修改参数实现对设备的监控 。 但是需要二次开发 因为不是每个上位机项目都合适 此框架好处就是不用理会软件通讯PLC等设备的协议与链接 只要开发者 对bool 操作的控件 实现了 Buttonbase接口 就可以读写固定PLC设备 文本类型 实现TextBoxbase 接口 就可以读写固定PLC设备 每个控件的刷新状态都在 自定义Uppercomputer20200727.控件重做.控件类基文件夹下 bool类型是:Buttonbase 文本类型是:TextBox_base 。 代码转载自:https://pan.quark.cn/s/a4b39357ea24 后续会持续添加控件实现多元化,更贴合,更方便,更快捷的设计理念目前支持简单常用的控件-支持三菱PLC--MC协议(3E帧)--西门子S7协议MODBUS TCP协...
打开链接下载源码: https://pan.quark.cn/s/a4b39357ea24 Uppercomputer-20200727 关于 由于上个版本 2021年6月27日推送的出现修改EF后 出现无法修改参数 现在紧急推送 请各位下载最新版本 现在已经推送大数据Web网页看板支持手机与电脑端预览 后端未实现 需要自己部署在IIS 修改SQL路径等操作 小白请止步! ! 具体部署方法后面我出出一期视频现在先全面实现Web网页后端数据交互与软件之间的关系 关于本软件其他软件访问上位机通讯基本完成代码在服务器端项目 近期添加了一个比较重要的版本运行开发人员对本软件进行界面设计 不再是固定界面后期会添加上不在软件运行时控件编辑开发人员可在IDE写好代码运行 添加发那科机器人内部协议可直接访问 机器人内部输入输出 寄存器等 后期会添加一些机器人专用控件 本软件说明 本软件适用于工业自动化作为上位机对下位设备进行监控与控制使用简易通过拖拽控件修改参数实现对设备的监控 。 但是需要二次开发 因为不是每个上位机项目都合适 此框架好处就是不用理会软件通讯PLC等设备的协议与链接 只要开发者 对bool 操作的控件 实现了 Buttonbase接口 就可以读写固定PLC设备 文本类型 实现TextBoxbase 接口 就可以读写固定PLC设备 每个控件的刷新状态都在 自定义Uppercomputer20200727.控件重做.控件类基文件夹下 bool类型是:Buttonbase 文本类型是:TextBox_base 。 后续会持续添加控件实现多元化,更贴合,更方便,更快捷的设计理念目前支持简单常用的控件-支持三菱PLC--MC协议(3E帧)--西门子S7协议MODBUS TCP协...

18,358

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧