串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧

本例程中用51单片机作为Modbus从机,从机的设备地址为2,从机有4个寄存器,寄存器地址分别为3,4,5,6,协议类型为保持寄存器,功能码为03和06。

第一步:新建一个工程,并在第一个画面上放置4个实时数据控件如下图1所示。

第二步:点击菜单【HMI变量】,弹出如下图所示界面。然后点【添加】,弹出图3所示界面。在这里我们可以添加4个HMI变量m_AD,m_AD_1,m_AD_2,m_AD_3,变量类型为无符号短整型,变量地址分别为58,60,62,64。

第三步:双击实时数据控件,弹出如图4所示窗口,点击【基本控制】,并关联我们刚才添加的HMI变量,4个实时数据控件分别关联HMI变量m_AD,m_AD_1,m_AD_2,m_AD_3,然后点【确定】。

到这里,我们添加控件完毕,下一步要做的就是映射,映射有两种方法,一种是高级映射,一种是直接映射,下面我们先讲高级映射的方法。

第一步:点击菜单【工程】里面的【系统参数设置】,弹出如图6所示窗口,在这里有两个串口设置,串口1适用于232通信,串口2适用于485通信,选择好串口后,设置好串口号和波特率,解码协议选择【Modbus RTU Master】,然后点【其它设置】,弹出图7所示窗口,点【高级设置】,弹出图8所示窗口。

第二步:在图8的界面中点【添加】,弹出图9所示窗口,PLC设备地址即Modbus从机地址,元件类型即Modbus协议中的功能码,其中【保持寄存器】即读写寄存器,功能码为03和06,元件编号即寄存器首地址,映射数量即要映射的寄存器个数;本例程中PLC设备地址为2,元件类型为【保持寄存器】,元件编号为03(这里填写的是寄存器首地址),映射数量为4(一次性映射多个寄存器时,寄存器的地址必须是连续的,不连续的要分开映射),由于控件关联的HMI变量的地址分别为58,60,62,64(一次性映射多个寄存器时,所关联的HMI变量的地址也必须是连续的),所以对应的HMI变量的起始地址为58,其他的不用改,然后点【确定】,映射完毕。

上面的是高级映射的方法,下面讲一下直接映射的方法。

第一步:双击实时数据控件,弹出【实时数据属性】对话框,如图10所示,点【基本控制】,在【连接目标】的下拉菜单中选择【<</span>串口1的PLC:Modbus RTU Master>和变量>】,如图11所示,弹出图12所示窗口。

图10

第二步:在图12中,站号即Modbus从机地址,功能码右边的方框就是寄存器的地址,功能码选【0x03(读保持寄存器)】。

图11

图12

以上是两种映射方法,两种方法相比,直接映射的方法比较简单,但是速度比较慢,而且不能一次性映射多个寄存器,所以建议使用高级映射方法。







串口屏Modbus协议,串口屏的modbus协议资料,串口屏modbus通讯协议开发,串口屏之modbus协议使用技巧的更多相关文章

  1. Modbus库开发笔记之三:Modbus TCP Server开发

    在完成了前面的工作后,我们就可以实现有针对性的应用了,首先我们来实现Modbus TCP的服务器端应用.当然我们不是做具体的应用,而是对Modbus TCP的服务器端应用进行封装以供有需要时调用. 这 ...

  2. 转载 C#开发串口总结,并提炼串口辅助类到公用类库中

    C#开发串口总结,并提炼串口辅助类到公用类库中 开发C#相关的项目有很多年了,一直没有接触串口的开发,近期由于工作的需要,需要了解熟悉对硬件串口的开发,通过对串口的深入了解,串口也不再是什么神秘的东西 ...

  3. [分享]我的LABVIEW快速开发串口测试软件实例

    LABVIEW是美国国家仪器公司(National Instruments,简称NI)的创新产品,它允许编程人员使用图形方式来进行编程,摒弃了艰涩难懂的代码,只需要拖动相应图形控件然后连线,进行简单的 ...

  4. Modbus库开发笔记之五:Modbus RTU Slave开发

    Modbus在串行链路上分为Slave和Master,这一节我们就来开发Slave.对于Modbus RTU从站来说,需要实现的功能其实与Modbus TCP的服务器端是一样的.其操作过程也是一样的. ...

  5. iOS开发 多屏尺的自动适配(转)

    [iOS开发]多屏尺的自动适配 AutoLayout (纯代码方式) (2014-09-19 09:35:47) 转载▼ 标签: autolayout ios开发 xcode ui 分类: Xcode ...

  6. 不懂怎么创建可视化大屏?手把手教你使用数据可视化BI软件创建工厂车间数据监控大屏

    灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件.   本文以工厂车间数据监控大屏为例 ...

  7. HTTP1.1协议-RFC2616-中文版课前资料收集

    1.http rfc大致讲了什么? 2.解决了什么问题? HTTP协议描述的是发送方与接收方的通信协议 协议功能: HTTP协议(HyperText Transfer Protocol,超文本传输协议 ...

  8. python 全栈开发,Day34(基于UDP协议的socket)

    昨日内容回顾 网络的基础概念arp协议 :通过ip地址找到mac地址五层模型 : 应用层 传输层 网络层 数据链路层 物理层tcp协议 : 可靠的 面向连接 全双工 三次握手 四次挥手udp协议 : ...

  9. 移动网络应用开发中,使用 HTTP 协议比起使用 socket 实现基于 TCP 的自定义协议有哪些优势?

    HTTP 是应用层协议,TCP 是传输层协议(位于应用层之下),放在一起类比并不合适.不过猜测楼主是想对比 “标准 HTTP 协议” 还是 “自定义的协议(基于 TCP Socket)” . 一般来说 ...

  10. 转载:Python Web开发最难懂的WSGI协议,到底包含哪些内容?

    原文:PSC推出的第二篇文章-<Python Web开发最难懂的WSGI协议,到底包含哪些内容?>-2017.9.27 我想大部分Python开发者最先接触到的方向是WEB方向(因为总是有 ...

随机推荐

  1. 利用smarty模板(登录、有关信息操作等功能)

    smarty模板前提是:前端和后端是分开的,所以肯定会有很多的后台页面,php页面和html页面是分开存储的. (1)登录页面的编写也是分两个页面(后台和前端) 1.首先是后台的php页面,很简单只要 ...

  2. [HDOJ2572]终曲

    Problem Description 最后的挑战终于到了!站在yifenfei和MM面前的只剩下邪恶的大魔王lemon一人了!战胜他,yifenfei就能顺利救出MM.Yifenfei和魔王lemo ...

  3. java基础:数组查询,同一数组一个元素最多出现两次

  4. 基于 Koa平台Node.js开发的KoaHub.js的输出json到页面代码

    koahub-body-res koahub body res Format koa's respond json. Installation $ npm install koahub-body-re ...

  5. Spring+SpringMVC+MyBatis+easyUI整合基础篇(十一)SVN服务器进阶

    日常啰嗦 上一篇文章<Spring+SpringMVC+MyBatis+easyUI整合基础篇(十)SVN搭建>简单的讲了一下SVN服务器的搭建,并没有详细的介绍配置文件及一些复杂的功能, ...

  6. Visual Studio 2015/2017 与ASP.NET CORE 联合创建具有SPA模式的Angular2模板

    虽然注册博客园很久,但是一直没有什么可写的,真心感觉好尴尬了,这次终于找到了一点可以写,有点小兴奋和小害羞呢. 进入主题,前端SPA模式越来越受到欢迎,Core 也开始被很多企业提上日程,但是因为这个 ...

  7. mysql语句sum求和为null的问题

    select sum(price) as price from order where status='SUCCESS'; 如果price对应的所有的值为0,那么算出来的和为null: 可以采用ifn ...

  8. Internet Information Services安装与启动

    Internet Information Services安装 1.打开控制面板——程序——启动或关闭windows功能 2.找到Internet Information Services ——将其全 ...

  9. .NET Framework 各版本区别(简介)

    本文通过在网络资料整理而得. .NET Framework1.1 1.自带了对mobile asp.net控件的支持.(在1.0版本是以附加功能实现) 2.加入了ASP.NET应用程序的代码安全访问功 ...

  10. cuda编程学习1——hello world!

    将c程序最简单的hello world用cuda编写在GPU上执行,以下为代码: #include<iostream>using namespace std;__global__ void ...