当前位置: 首页 > news >正文

做早餐煲汤网站设计网站用什么软件

做早餐煲汤网站,设计网站用什么软件,西宁专业企业网站建设,家装公司取名字大全集虽然在以前的文章中多次描述过,那么本文使用开源库libModbus,可得到更好的性能,也可移植到各种平台。 性能:读1次和写1次约各用时2ms。 分别创建了读和写各1个连接指针,用于读100个寄存器和写100个寄存器,读写分离。 客户端&am…

虽然在以前的文章中多次描述过,那么本文使用开源库libModbus,可得到更好的性能,也可移植到各种平台。

性能:读1次和写1次约各用时2ms

分别创建了读和写各1个连接指针,用于读100个寄存器和写100个寄存器,读写分离

客户端: win10 

                Intel(R) Pentium(R) Gold 8505   1.20 GHz

               Intel(R) Ethernet Controller I226

                QT6.2.4

服务端:信捷XDH PLC

测试读100次共200ms左右,写100次也共200ms左右。

 很容易移植到linux电脑、以及嵌入式系统 。       

1.前置条件:

   (1)需要头文件8个:

(2)还需要扩展名为.c的4个文件:

(3)把以上代码拷贝如你的项目文件中,并添加进去

(4)还有一个注意事项:在pro文件中需要添加这个:LIBS += -lWs2_32

这行是添加Windows socket库文件

2.代码:

   #include "modbus-tcp.h"
   #include <QElapsedTimer>

   //以下可放入你的按钮代码里

    uint16_t tab_reg[100];  // 用于保存读取到的寄存器的数据
     uint16_t write_buffer_16[100];// 用于写寄存器的数据到服务端

     modbus_t *ctx;//用于读
     modbus_t *ctx2;//用于写


    // 创建 Modbus 上下文
     QElapsedTimer time_m;
     time_m.start();
      ctx = modbus_new_tcp("192.168.6.6", 502);  // 服务器的 IP 地址和端口号

     //ctx2 = modbus_new_tcp("127.0.0.1", 502);  // 如果你没有这个PLC,用这行代替上行 
     if (ctx == NULL)

    {
         fprintf(stderr, "Unable to create the libmodbus context\n");
         return  ;
     }
     // 连接到 Modbus 服务器
     if (modbus_connect(ctx) == -1)

    {
         fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
         modbus_free(ctx);
         return  ;
     }

     int rc;
     // 读取保持寄存器的数据(示例:从地址0开始读取100个寄存器)
     for (int i = 0; i < 100; i++)//读100次
     {
         rc = modbus_read_registers(ctx, 0, 100, tab_reg);//读,地址0,100个寄存器
     }

     if (rc == -1) {
         fprintf(stderr, "Read registers failed: %s\n", modbus_strerror(errno));
         modbus_close(ctx);
         modbus_free(ctx);
         return  ;
     }

     qDebug()<<rc;
     modbus_close(ctx);
     modbus_free(ctx);
     qDebug()<<"read use:"<<time_m.elapsed()<<"ms";
  //--------------分割线-----------------------------------------
     time_m.start();
      ctx2 = modbus_new_tcp("192.168.6.6", 502);  // 服务器的 IP 地址和端口号

      //ctx2 = modbus_new_tcp("127.0.0.1", 502);  // 如果你没有这个PLC,用这行代替上行 

    if (ctx2 == NULL) {
        fprintf(stderr, "Unable to create the libmodbus context\n");
        return  ;
    }
    if (modbus_connect(ctx2) == -1) {
        fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno));
        modbus_free(ctx2);
        return  ;
    }

    for (int i = 0; i < 100; i++)
    {
        write_buffer_16[i]=i;
    }

    int rw=0;

   // 写入保持寄存器的数据(示例:从地址0开始写入100个寄存器)
    for(int i=0;i<100;i++)//写100次
    {
         rw=modbus_write_registers(ctx2,0, 100, write_buffer_16);//地址0,100个寄存器
    }


    if (rw == -1)
     {
        fprintf(stderr, "write registers failed: %s\n", modbus_strerror(errno));
        modbus_close(ctx2);
        modbus_free(ctx2);
        return  ;
    }
    qDebug()<<rw;
    // // 打印读取到的寄存器数据
    // for (int i = 0; i < 100; i++)
    // {
    //     printf("Register %d: %d\n", i, tab_reg[i]);
    // }

    // 关闭连接并释放资源

    modbus_close(ctx2);
    modbus_free(ctx2);
    qDebug()<<"write use:"<<time_m.elapsed()<<"ms";

3.库文件下载链接

https://download.csdn.net/download/weixin_39926429/88900380

4.如果你没有PLC,可用以下软件模拟服务端

https://download.csdn.net/download/weixin_39926429/88900693

http://www.zhongyajixie.com/news/41459.html

相关文章:

  • 找大学生做网站靠谱吗产品网络推广的方法
  • 青州做网站电话百度小说风云榜2022
  • 公司网站功能模块代理广告投放平台
  • 网站换新的空间域名解析怎么做短视频培训学校
  • 中国建设银行官网入口seo名词解释
  • 电子商务网站开发进什么科目宣传渠道有哪些
  • 网站开发 重庆谷歌海外广告投放推广
  • ps做图赚钱网站最好的推广平台排名
  • 全面的客户管理系统最好的关键词排名优化软件
  • 哪里找需要网站建设的广州营销seo
  • 广州做外贸网站建设百度竞价登陆
  • java培训一般多少费用百度搜索名字排名优化
  • 升降机网站怎么做google商店
  • WordPress不关站备案插件口碑营销的重要性
  • wordpress 采集 jsonseo优化是什么意思
  • 网站开发参考资料发布新闻最快的网站
  • 孝感有做网站的公司吗免费创建网站软件
  • 门户网站与搜索引擎的区别seo的中文含义是什么
  • 做阿里巴巴网站可以贷款吗百度的官方网站
  • 动态网站建设包括哪些方面常州seo外包公司
  • 网站开发服务费属于哪种进项怎么免费创建自己的网站
  • 泉州做妈祖雕像网站企业品牌营销推广
  • 淄博网站建设网站推广搜索到的相关信息
  • 阿里云企业网站建设教程百度手机怎么刷排名多少钱
  • 宝洁公司网站建设现状宁波seo搜索平台推广专业
  • 上海装饰公司排名百强武汉seo托管公司
  • 做传奇网站网站建设需要啥
  • 北京网站建设手机app电子商务公司网站免费建站
  • 浅谈政府网站集约化建设淘宝关键词排名优化技巧
  • 做网站登录网页设计与制作代码成品