写在面前

大家好,我是捞仪,号主小智前同事~

前面我们介绍了PLC与PLC的通讯,PC与PLC之间的通讯(见文末推荐),就工业环境而言,通讯方式和通讯协议多种多样,通讯的硬件也是五花八门。但是通讯做多了,如果你真的很清晰的从基础理论出发去完成过通讯的建立,编码,其实大多都是一通百通的。

今天主要介绍在某MES项目中,通过ModbusTCP与研华IO模块通讯。使用的IO模块是ADAM6250。

今天的主要内容为:

01 硬件平台

02 参数配置

03 Modbus TCP

04 软件平台与主要代码

01 硬件平台

1、先从硬件平台开始介绍:

Adam-6200 模块具有两个网口,内建的以太网交换机使模块之间可用菊花链方式连接,更容易部署、节省布线成本,并提高扩展性。两个10/100Mbps 以太网络端口为标准的RJ-45端口,完全符合IEEE 802.3u标准。

下面简单看下ADAM6250的内部图:

需要给Vs+和Vs-供上10-30V电源即可使用(推荐24V)

02 参数配置

2、参数配置。

下面先用调试软件设置模块的IP地址,通讯模式,地址等等参数,同时还可以用调试软件控制模块。调试步骤比较简单。

设置步骤就不一一截图啦,比较简单。从NetWork选项栏中修改IP地址和掩码,端口号是十分重要的设置啦,选用Modbus TCP,设置成502

03 Modbus TCP

3、简单介绍下ModbusTCP

Modbus采用主从(Master-Salve)通信模式,主设备(Master)能对传输进行初始化,从设备(Slave)根据主设备的请求进行应答。典型的主设备包括现场仪表和显示面板,典型的从设备为可编程逻辑控制器(PLC)。

主机发送Modbus请求,从机根据请求内容向主机返回响应。在Modbus协议中,主机总是主动方,从机总是被动方。ModbusTCP的数据帧可分为两部分:MBAP+PDU。

报文头MBAP

MBAP为报文头,长度为7字节,组成如下:

帧结构PDU

PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。

功能码

Modbus的操作对象有四种:线圈、离散输入、输入寄存器、保持寄存器。

按照格式划分报文格式:

(1)报文中的所有字节均为16进制

(2)由上图我们总结出不同的功能码的报文(无论请求报文还是响应报文)前8个字节都是一致的:消息号+2字节Modbus标识+2字节长度+1字节站号+1字节功能码,后边根据功能码不同而不同。

如果想详细了解,可以参见:

Modubs 的RTU、ASCII、TCP傻傻搞不清楚?这将是你见过的最全面分析

04 软件平台与主要代码

4、软件平台与主要代码

编程平台:Visual Studio

编程语言:C# ,界面使用 WPF

数据库:Oracle

其实代码并不难,几个很重要的参数:端口号和IP当然少不了了,起始地址和数据长度,功能码都是相当重要的。

创建一个ModbusTCP主站,不是new一个对象哦

功能码:

读写研华IO模块,并且把数据上传到Oracle

总结:最近有点忙,所以文章更新慢了点,下一讲会给大家介绍三菱的MX Component通讯

winpcapp配置c++网口通讯_MES、SCADA项目中的数据采集—基于C#与研华IO模块ModbusTCP通讯...相关推荐

  1. element 配置全局样式 例如:为项目中所有el-dialog弹窗添加分割线

    先看问题,设计图的el-dialog弹窗在提示文字下面都有一条横线, element框架自带的el-dialog弹窗缺少提示文字下面的那个分割横线. 为了避免重复编写样式,我们为el-dialog添加 ...

  2. java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

    如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...

  3. winpcapp配置c++网口通讯_(经验)西门子PLC的Modbus TCP通讯的一些经验

    Modbus是一种协议公开的工业通讯,被广泛使用.通过串口的是Modbus-RTU协议,通过以太网的是Modbus TCP通讯.现在的PLC都开始支持以太网通讯,因此,Modbus TCP也越来越重要 ...

  4. winpcapp配置c++网口通讯_PLC通讯智能网关,不用编程,实现西门子与罗克韦尔(AB)、三菱等PLC之间通讯...

    智能网关IGT-DSER支持多点对多点的设置之间通讯,支持以太网,串口设备混合数据交换:无需编程开发,只须配置数据的起始地址和数量即可,支持热插拔,断电重启后自恢复运行,在实际的工程项目中应用方便. ...

  5. 企业升级改造项目中的电力监控系统的研究与应用

    摘要:采用微机保护和多功能电力仪表采集变电所内10KV高压柜配电回路的各种电参量和开关信号.系统采用现场就地组网的方式,组网后通过现场总线通讯并远传至后台,通过Acrel-2000型电力监控系统实现配 ...

  6. 在内网中使用maven_搭建私有maven仓库并在项目中使用

    这是一篇写给女朋友看的教程...前方高能,注意避让~ 1.私有maven仓库的搭建 搭建环境为阿里云ESC服务器,CentOS.确保服务器已经安装Jdk.然后我要手把手教你安装和启动nexus. St ...

  7. Maven多模块项目中应用maven-tomcat-plugin热部署

    Maven多模块项目中使用maven-tomcat-plugin热部署 比如有一个父模块xfl(类型为pom的maven项目),其中的pom.xml为: <modules> <mod ...

  8. IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)

    文章目录 IDEA 如何获取项目的模块数据 从项目源中选择模块加入当前项目中 如何移除项目中的模块 方式一,选择模块的根目录(Content Root),鼠标右键 Remove 方式二,打开[项目结构 ...

  9. Android公共jar,使用JitPack管理Android项目中公共模块库

    随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可. 现在Andr ...

最新文章

  1. js两种显示日期方法
  2. python基础知识资料-学习Python列表的基础知识汇总
  3. tensorflow随笔-collection收集器
  4. 【已解决】百度云分享失败
  5. HDU - 5316 Magician(线段树区间合并)
  6. 【转】在Windows中搭建iPhone开发环境
  7. 对一个带小数的数进行四舍五入取整
  8. 碳酸铜行业调研报告 - 市场现状分析与发展前景预测
  9. 监测 Linux 上失败的登录尝试方法分享
  10. 恐怖logo效果展示AE模板
  11. 腾讯地图api php经纬度转换地址,腾讯地图经纬度转换为百度地图经纬度PHP类
  12. 获取窗口句柄 c语言,VC++编程获取窗口句柄的方法小结分享
  13. 【毕业季】致毕业生的一句话:天高任鸟飞,海阔凭鱼跃
  14. vue自定义组件总结
  15. 以太坊:分片Sharding FAQ
  16. 用计算机求算术平方根,6.1用计算机计算算术平方根.ppt
  17. 解决(“settings.DATABASES is improperly configured. “django.core.exceptions.Im
  18. 小卖部做成了我们没有做成的事
  19. numpy常用公式收集
  20. vuejs crc算法,16进制换算

热门文章

  1. ubunut离线redis配置_ubuntu安装redis及简单配置
  2. MMD_5b_ComputationalAdvertising
  3. MECAT:PC组装人的基因组
  4. 单继承--多态性 多继承--二义性 ambiguous
  5. wxwidgets mysql_wxWidgets导入Excel文件详细教程
  6. java socket channel_Java NIO 教程(八) SocketChannel
  7. linux ip -o,linux IP 命令使用举例
  8. linux磁盘管理命令 lv,Linux磁盘管理--LVM原理及基本操作
  9. css 不展示滚动条,CSS-界面滚动时不显示滚动条
  10. Apache的管理及优化web