0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

米尔-全志T113-i开发板与modbus设备的连接和操作

发烧电子爱好者 来源:发烧电子爱好者 作者:发烧电子爱好者 2024-03-21 19:42 次阅读

继前面开发环境设置和libmodbus库的移植后,本文主要介绍通过米尔-全志T113-i开发板实现与modbus设备的连接和操作。

一、设备简介

刚好手头有个modbus温度传感设备。

wKgaomX8EOeAR5JAAAKvN_gAOcc390.png

各种参数也挺好,就直接拿来用了。

wKgaomX8EwSAUdPPAAGsM04qiDk282.png

二、程序设计

目标功能就是读取温度传感设备的温度,libmodbus库提供了相关API,跟网络编程的socket一样好用。

wKgaomX8FJiAII_2AAC7-NeaflI048.png

涉及的主要API包括:modbus_new_rtu、modbus_set_slave、modbus_read_registers和modbus_close 以及 modbus_free等接口。顾名思义,各种API的功能都很清晰。

具体程序功能包括周期性读取连接到米尔-全志T113-i开发板上的温度传感器,源码如下:

#include < errno.h >
#include < modbus.h >
#include < stdio.h >
#include < stdlib.h >
#include < string.h >
#include < unistd.h >

int main(int argc, char *argv[])
{
    uint16_t tab_reg[2];
    modbus_t *ctx;
    int i;
    int rc;
    uint32_t *ireal;

    ctx = modbus_new_rtu("/dev/ttyAS4", 115200, 'N', 8, 1);
    if (ctx == NULL) {
        fprintf(stderr, "Unable to allocate libmodbus contextn");
        return -1;
    }
	
    modbus_set_debug(ctx, TRUE);
    modbus_set_slave(ctx, 1);
    if (modbus_connect(ctx) == -1) {
        fprintf(stderr, "Connection failed: %sn", modbus_strerror(errno));
        modbus_free(ctx);
        return -1;
    }

   while(1)
   {
        printf("--------------------n");
        rc = modbus_read_registers(ctx, 0x0000, 1, tab_reg);
        if(rc == -1)
        {   fprintf(stderr,"%sn",modbus_strerror(errno));
            return -1;
        }
      for(i=0; i< 2; i++)
      {
         printf("reg[%d] = %d(0x%x)n",i,tab_reg[i],tab_reg[i]);
      }
	  ireal = (uint32_t *)tab_reg;
	  printf("Resd data %f n", (*ireal)/10.0);
	  
      usleep(1000000);
   }

     modbus_close(ctx);
     modbus_free(ctx);
     return 0;
}

其它Modbus的协议在此不再接受,网络上到处都是。

三、功能执行

首先根据线序连接好温度传感器和米尔-全志T113-i开发板。

wKgZomX8FvyAfJoxAAlLmObiNL4342.jpg

编译好源码。

root@EliteDesk800:~/libmodbus-3.1.10/tests$ make
make  all-am
make[1]: Entering directory '/home/libmodbus-3.1.10/tests'
  CC       mod-client.o
  CCLD     mod-client
make[1]: Leaving directory '/home/libmodbus-3.1.10/tests'
root@EliteDesk800:~

再将编译后的可执行程序SCP至米尔-全志T113-i开发板上,chmod + x后再执行。

wKgaomX8F3uAGJxEAAH2zJflafI026.png

其中的debug信息是modbus_set_debug函数设置的结果打印log。
根据执行结果,读出的温度OK。

四、结论

1、米尔-全志T113-i开发板提供了丰富的接口和稳定的操作系统环境,很适合工业控制软件程序开发;
2、依托libmodbus这个modbus协议库,对于linux应用下的modbus通信开发,简直就是一款神器,能够极大的方便工业控制程序的开发。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • MODBUS
    +关注

    关注

    28

    文章

    1804

    浏览量

    76982
  • 开发板
    +关注

    关注

    25

    文章

    5040

    浏览量

    97415
收藏 人收藏

    评论

    相关推荐

    如何用OpenCV进行手势识别--基于米尔T527开发板

    本文将介绍基于米尔电子MYD-LT527开发板米尔基于T527
    的头像 发表于 12-13 08:04 657次阅读
    如何用OpenCV进行手势识别--基于<b class='flag-5'>米尔</b><b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T</b>527<b class='flag-5'>开发板</b>

    基于T113-i的系统快速启动显示Qt界面、LVGL界面案例

    本文主要介绍基于创龙科技TLT113-EVM评估(基于T113-i)的系统快速启动显示Qt界面、LVGL界面案例,适用
    的头像 发表于 11-27 09:18 392次阅读
    基于<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b>的系统快速启动显示Qt界面、LVGL界面案例

    国产RISC-V案例分享,基于T113-i异构多核平台!

    RISC-V核心优势T113-i是一款双核Cortex-A7@1.2GHz国产工业级处理器平台,并内置玄铁C906 RISC-V和HiFi4 DSP双副核心,可流畅运行Linux系统与Qt界面
    发表于 10-29 09:47

    基于T113-i多核异构处理器的全国产嵌入式核心简介

    一、嵌入式核心产品介绍 基于公司的T113-i处理器精心设计的多核异构处理器、工业级ECK30-T13IA系列嵌入式核心
    的头像 发表于 10-25 13:40 292次阅读

    哇!0.8秒启动!Linux快速启动方案分享,T113-i国产平台!

    本文主要介绍基于创龙科技TLT113-EVM评估(基于T113-i)的系统快速启动方案,适用开发
    发表于 08-22 11:54

    7折购!米尔基于T113系列开发板

    T113系列芯片是目前比较受欢迎的国产入门级嵌入式工业芯片。米尔是基于T113芯片开发较早、
    的头像 发表于 06-21 08:01 539次阅读
    7折购!<b class='flag-5'>米尔</b>基于<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113</b>系列<b class='flag-5'>开发板</b>

    T113-i最新发布Tina5.0系统!支持3大新特性!

    创龙科技T113-i双核Cortex-A7@1.2GHz全国产工业核心(含税79元)一经面世,就以超高性价比受到全行业关注。而创龙科技再次为T
    的头像 发表于 05-14 08:05 680次阅读
    <b class='flag-5'>T113-i</b>最新发布Tina5.0系统!支持3大新特性!

    G2D图像处理硬件调用和测试-基于米尔-T113-i开发板

    本篇测评由电子工程世界的优秀测评者“jf_99374259”提供。本文将介绍基于米尔电子MYD-YT113i开发板的G2D图像处理硬件调用和测试。MYC-YT113i核心
    的头像 发表于 04-12 08:01 667次阅读
    G2D图像处理硬件调用和测试-基于<b class='flag-5'>米尔</b>-<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b><b class='flag-5'>开发板</b>

    米尔-T113-i开发板试用】米尔-T113-i开发板modbus设备连接操作

    继前面开发环境设置和libmodbus库的移植后,本文主要介绍通过米尔-T113-i开发板
    发表于 03-21 19:39

    米尔-T113-i开发板试用】移植libmodbus库到米尔-T113-i开发板

    for an indication... modbus-pull读寄存器,设备id是demo里面写死的。 米尔-
    发表于 03-05 22:31

    米尔-T113-i开发环境搭建

    一、开发板简介 米尔-T113-i开发板搭载
    的头像 发表于 03-02 23:34 2677次阅读
    <b class='flag-5'>米尔</b>-<b class='flag-5'>全</b><b class='flag-5'>志</b><b class='flag-5'>T113-i</b><b class='flag-5'>开发</b>环境搭建

    米尔-T113-i开发板试用】米尔-T113-i开发环境搭建

    首先感谢MYIR & ELECFANS给与的使用米尔-T113-i开发板的机会。 一、开发板
    发表于 03-01 21:43

    米尔-T113-i开发板试用】发布opencv-mobile米尔t113i专享预编译包

    MYC-YT113i核心开发板 真正的国产核心,100%国产物料认证 国产T113-i处理器配备2*Cortex-A7@1.2GHz
    发表于 02-25 20:23

    米尔-T113-i开发板试用】3、使用golang获取系统信息

    (duration.Hours()/24)) 程序的整体输出如下 由于golang可以跨平台开发,我们先在X86的电脑上开发,然后交叉编译放到米尔
    发表于 02-22 09:39

    飞凌嵌入式T113-i开发板的调屏方法

    对于飞凌嵌入式T113-i开发板的调屏问题,需要按照以下步骤进行操作
    的头像 发表于 01-29 16:25 993次阅读