前言

最近有运动控制的学员问到这样的问题,能不能通过Modbus协议,实现运动控制卡的数据读取。

经过测试,切实可行。这里采用的是正运动的ECI1408板卡,其他品牌板卡可能不支持,具体咨询供应商。

MOdbus协议

正运动控制器支持两个存储区,分别是0区和4区。

  • 0区从地址10000开始与输入 IN 口对应。

  • 0区从地址20000开始与输出 OUT 口对应。

  • 4区从地址10000开始对应轴 DPOS 区间。

  • 4区从地址11000开始对应轴 MPOS 区间。

  • 4区从地址12000开始对应轴 VP_SPEED 区间。

  • 4区从地址13000开始对应模拟量DA输出区间。

  • 4区从地址14000开始对应模拟量AD输入区间。

  • 对于其他参数,可以采用自定义存储区0-7999来使用。

代码测试

这里以读取XYZ三轴的位置来进行测试。

  • 建立连接

        //Modbus通信对象private ModbusTcp modbusTcp = new ModbusTcp();//取消线程源private CancellationTokenSource cts;private void btn_Connect_Click(object sender, EventArgs e){if (modbusTcp.Connect(this.txt_IPAddress.Text, Convert.ToInt32(this.txt_Port.Text))){//如果连接成功,开线程读取cts = new CancellationTokenSource();Task.Run(() =>{GetMotionData();}, cts.Token);}else{MessageBox.Show("运动控制卡连接失败", "建立连接");}}
  • 断开连接

        private void btn_DisConn_Click(object sender, EventArgs e){cts?.Cancel();modbusTcp.DisConnect();}
  • 多线程读取解析

        private void GetMotionData(){while (!cts.IsCancellationRequested){byte[] res = modbusTcp.ReadKeepReg(1, 10000, 6);this.Invoke(new Action(() =>{if (res != null && res.Length == 12){float[] values = FloatLib.GetFloatArrayFromByteArray(res, DataFormat.CDAB);this.lbl_XAxis.Text = values[0].ToString();this.lbl_YAxis.Text = values[1].ToString();this.lbl_ZAxis.Text = values[2].ToString();}}));}}
  • 测试结果如下:

上位机软件实时数据显示:

测试软件结果显示:

整体总结

本案例主要是测试了基于Modbus协议来读取运动控制卡的相关参数,这种情况主要用于第三方软件需要运动控制系统的相关数据。同时,如果后续的运动控制项目,需要提供数据给其他软件,可以将运动控制卡作为一个现成免费的ModbusTCP服务器,不仅可以传递运动控制参数,其他参数都可以实现传递。

上位机开发——Modbus联合运动控制卡实时通信相关推荐

  1. 简单易用的运动控制卡(一):硬件接线和上位机开发

    今天,正运动小助手给大家分享一下运动控制卡之ECI3808的硬件接线和如何进行MFC的上位机开发. 一 .ECI3808硬件介绍 1.功能介绍 ECI3808系列控制卡支持最多达 12 轴直线插补.任 ...

  2. 新阁上位机开发--10年工程师的Modbus总结

    前言 大家好,我是新阁上位机开发付老师. 我算了一下,今年是我跟Modbus相识的第10年,从最开始的简单应用到协议了解,从协议开发到协议讲解,这个陪伴了10年的协议,它一直没变,变的只是我对它的理解 ...

  3. 485通信原理_上位机开发之单片机通信实践

    经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的.PLC的本质就是单片机,在 ...

  4. java开发plc上位机软件开发_上位机开发之西门子PLC-S7通信实践

    写在前面: 就目前而言,在中国的工控市场上,西门子仍然占了很大的份额,因此对于上位机开发而言,经常会存在需要与西门子PLC进行通信的情况.然后对于西门子PLC来说,通信方式有很多,下面简单列举一下: ...

  5. pythonqt4上位机开发_「新阁教育」自由口通信上位机实战案例

    1.引言 组态软件作为一种通用软件,体系结构较为庞大.功能软件包多.价格也比较昂贵,而且对于一些复杂的业务逻辑或自定义的协议,实现起来比较麻烦.近几年,C#/.NET上位机开发应用越来越广泛,相对于传 ...

  6. pythonqt4上位机开发_上位机开发之单片机通信实践(一)

    经常会有一些学员会问到上位机与单片机之间通信的问题,而我们经常会讲上位机与PLC之间通信,那么其实对上位机开发来说,不管是和PLC通信,还是和单片机通信,通信原理都是一样的.PLC的本质就是单片机,在 ...

  7. jpg灰度化 python_python开发之HighGUI上位机开发(一)

    python开发之HighGUI上位机开发 文章首发: python开发之HighGUI上位机开发(一)_ywsydwsbn的博客-CSDN博客​blog.csdn.net HighGUI简介 概要 ...

  8. Matlab上位机开发(一) —— 了解上位机

    1. 上位机的作用 在嵌入式项目开发中,无论是单片机项目.嵌入式Linux项目.FPGA项目,上位机始终是一个很重要的部分,主要用于: 数据显示(波形.温度等) 用户控制(LED,继电器等) 文件传输 ...

  9. 信捷plc485通信上位机_上位机开发之三菱FX3U以太网通信实践

    上次跟大家介绍了一下上位机与三菱Q系列PLC通信的案例,大家可以通过点击这篇文章: dotNet工控上位机:上位机开发之三菱Q系列PLC通信实战​zhuanlan.zhihu.com 今天以三菱FX3 ...

最新文章

  1. python爬虫详细步骤-Python爬虫的两套解析方法和四种爬虫实现过程
  2. Linux系统基础调优
  3. 爬虫非专业八级模拟考试
  4. 国内MCU厂商也开始卷了
  5. 程序员应该知道的一些很cool网站
  6. IIS6中应用程序池和Web园,解决Session丢失问题
  7. vml入门教程 【转】
  8. linux 文件可执行_深入理解linux内核——可执行文件执行过程(2)
  9. [转]经典正则表达式
  10. 前端视频截图的方法canvas.drawImage()
  11. 计算机主机开机 风扇没有转动,电脑开机黑屏,电源风扇和CPU风扇都正常转动,但是显示器无任何显示,正常的一声滴,萤幕什么都不显示...
  12. 写给程序员的 2018 新年计划清单
  13. yolo 算法中的IOU算法程序与原理解读
  14. 计算机网络-自顶向下方法 第三章课后习题答案(第七版)
  15. 苹果主题商店_小米怕被苹果找茬,开始下架相关IOS主题了!
  16. 官网稳定版微信小程序下载地址
  17. 笔记 | 产品经理必懂的技术(五)
  18. 正确输入连字号、连接号、破折号和负号
  19. dasda(大s打陈建州)
  20. 如何制作Google logo?

热门文章

  1. 盘点一道Python基础实现代数运算的基础题目
  2. 使用百度云的人脸识别API实现两张照片是否为同一人的判断
  3. 2022年1月国产数据库排行榜:TOP10中4款产品得分再创新高
  4. 照片怎么改像素分辨率?照片分辨率怎么调成300dpi?
  5. Django实现CMS内容管理系统mptt评论功能
  6. java计算机毕业设计腾讯网游辅助小助手源码+系统+数据库+lw文档+mybatis+运行部署
  7. 丹麦网站推出提供俊男靓女精子或卵子服务
  8. 【uniapp】微信小程序发布后提醒用户更新版本
  9. 浅析中小企业ERP免费版发展前景
  10. java怒之铁拳,经典游戏《怒之铁拳》那些有趣的设定,资深玩家们表示白玩了...