C#上位机与三菱PLC的通信07--使用第3方通讯库读写数据

1、通讯库介绍

mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库,具有以下特点:

支持多种三菱 PLC MC 协议的设备,如 FX3U、Q03UDECPU、QJ71E71 等。

支持多种功能码和数据类型,如读取线圈(M)、读取寄存器(D)、写入寄存器(D)、读取扩展寄存器(D*)、读取位寄存器(X/Y)、读取字寄存器(W)等。

支持多种通信方式,如 TCP、UDP、串口等。

代码结构清晰,易于扩展和二次开发。支持 Promise、async/await 等语法糖,提高开发效率。

mcprotocol 的主要功能是实现与三菱 PLC MC 协议设备之间的数据交互,例如读取设备上的某个寄存器的值,并将其传递给 Node.js 应用程序。在使用该库进行开发时,需要先连接到 PLC 设备,然后使用库提供的接口进行数据读写操作。 

通讯协议库是一种软件开发工具,用于实现PLC与其他设备之间的通讯功能。三菱PLC通讯协议库是一款专门为三菱PLC开发的通讯协议库,可以实现PLC与上位机、HMI、SCADA系统等设备之间的数据交换和通讯。

三菱PLC通讯协议库具有以下主要功能:

(1)数据读写功能:可以实现对PLC内部数据的读写操作,包括读取PLC内部寄存器的值、写入数据到PLC内部寄存器等。

(2)报警处理功能:可以实时监测PLC的报警信息,并将报警信息传输给上位机或其他设备进行处理。

(3)远程监控功能:可以实现对PLC的远程监控和控制,可以通过上位机或HMI实时查看和操作PLC的运行状态。

(4)数据传输功能:可以实现PLC与其他设备之间的数据传输,包括实时数据传输、历史数据传输等。

2、开干

这节继续使用上节的VS2022的项目,增加一个方法 MCProtocolLibTest(),具体怎么创建项目,见上节的过程。C#上位机与三菱PLC的通信04--MC协议之A-1E报文测试

1、引入通讯库

2、连接PLC

3、启动服务器

4、读取数据

1、读取D100地址开始的2个int类型数据

2、 通过A1E进行D102的双字 DWord(Float) 读取,即读取float类型--4Byte 

  /// <summary>
  /// 第3方通讯库测试
  /// </summary>
  /// <exception cref="NotImplementedException"></exception>
  private static async void MCProtocolLibTest()
  {
       McProtocolTcp mcProtocolTcp = new  McProtocolTcp(
         "192.168.1.7", 6000,  McFrame.MC1E);
      await mcProtocolTcp.Open();
      if (mcProtocolTcp.Connected)
      {
          Console.WriteLine("连接成功!"); 

          Console.WriteLine("读取D100地址开始的2个int类型数据");
          var result1 = await mcProtocolTcp.ReadDeviceBlock(PlcDeviceType.D, 100, 2);
          for (int i = 0; i < result1.Length; i++)
          {
              //每2个字节一组
              byte[] temp = new byte[2];
              temp[0] = result1[i];
              temp[1] = result1[++i];
              Console.WriteLine(BitConverter.ToInt16(temp, 0));//字节数组转换成int16数据
          }

          Console.WriteLine("读取D102地址开始的1个float类型数据");
          var result2 = await mcProtocolTcp.ReadDeviceBlock(PlcDeviceType.D, 102, 2);
          for (int i = 0; i < result1.Length; i++)
          {
              //每4个字节一组
              byte[] temp = new byte[4];
              temp[0] = result2[i];
              temp[1] = result2[++i];
              temp[2] = result2[++i];
              temp[3] = result2[++i];
              Console.WriteLine(BitConverter.ToSingle(temp, 0));//字节数组转换成float数据
          }
      }
  }

 

3、通过A1E进行位的读取M16,M区的地址要转换成16进制,即读取bool类型数据

5、写入数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/394762.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

工具:clang-format使用

Visual Studio 在扩展-》管理扩展-》联机-》搜索Format on Save (for VS2022)插件&#xff0c;并安装 安装需要关闭VS&#xff0c;安装后重新打开vs。 这样每次保存源文件时就会自动调用vs默认的clang-format.exe对源码进行缩进&#xff0c;空格等进行格式化 如果想使用自定…

MT8781核心板_MTK8781安卓核心板规格参数

MT8781安卓核心板以其强大的性能和高效的能耐备受瞩目。其八核CPU架构包括(2x Cortex-A76 2.2GHz 6x Cortex-A55 2.0GHz)&#xff0c;以及高性能的Arm Mali G57级GPU。同时&#xff0c;配备高达2,133MHz的LPDDR4X内存和快速的UFS 2.2级存储&#xff0c;大大加速了数据访问速…

定制红酒:为客户创造与众不同的品鉴体验

品鉴红酒不仅仅是为了享受美酒&#xff0c;更是一种生活方式的体现。云仓酒庄洒派深知这一点&#xff0c;并致力于为客户创造与众不同的品鉴体验。 1. 专业品鉴指导 云仓酒庄洒派拥有一支专业的品鉴团队&#xff0c;为客户提供详细的品鉴指导。无论是对于红酒的基本知识、品鉴…

qlv转mp4怎么操作?打破格式限制,转换技巧大揭秘

在数字媒体的世界里&#xff0c;视频格式的转换已成为我们日常生活中的常见需求。其中&#xff0c;将腾 讯视频特有的qlv格式转换为更通用的mp4格式&#xff0c;是许多用户面临的挑战。如何快速、高效地完成qlv转mp4&#xff1f;本文将为你揭开转换技巧的神秘面纱&#xff0c;让…

PMP和软件高项哪个含金量高?

PMP认证和高项二者可以说有相似之处又有不同之处&#xff0c;在知识点的方面他们的接触面非常广泛&#xff0c;多至80%&#xff0c;而在作用和适用方向上二者就有比较大些的区别&#xff0c;至于考哪个不考哪个的问题我身为过来人还是不建议去多想的&#xff0c;两个都照杀&…

【Linux】进程间通信——共享内存

文章目录 共享内存的概要创建共享内存shmget()参数keyshmget()参数sizeshmget()参数shmflg 删除共享内存挂载共享内存去关联 共享内存的概要 共享内存允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式。不同进程之间…

多维时序 | Matlab实现基于VMD-DBO-LSTM、VMD-LSTM、LSTM的多变量时间序列预测

多维时序 | Matlab实现基于VMD-DBO-LSTM、VMD-LSTM、LSTM的多变量时间序列预测 目录 多维时序 | Matlab实现基于VMD-DBO-LSTM、VMD-LSTM、LSTM的多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于VMD-DBO-LSTM、VMD-LSTM、LSTM的多变量时间…

Eclipse - Formatter

Eclipse - Formatter References Window -> Preferences -> C/C -> Code Style -> Formatter BSD/Allman [built-in] or K& R [built-in] References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

电脑卡住不动了怎么办?三招解救你的电脑!

电脑卡住不动是一种常见的故障&#xff0c;可能会给用户带来困扰。这种情况可能由于多种原因引起&#xff0c;包括软件问题、硬件故障或系统错误。那么&#xff0c;电脑卡住不动了怎么办呢&#xff1f;在本文中&#xff0c;我们将介绍电脑卡住不动的可能原因&#xff0c;并提供…

Itext生成pdf文件,html转pdf时中文一直显示不出来

之前使用freemark模板渲染ftl页面,转出的pdf中&#xff0c;css2的很多样式好像不支持 改造成使用html页面来转pdf&#xff0c;css2的样式可以生效,itext是不支持css3的弹性布局的ITextRenderer pdfRenderer new ITextRenderer();// 添加字体设置ITextFontResolver fontResolve…

微信小程序 点击右上角三个点 当前页面未设置分享

js文件中添加 //用户点击右上角分享朋友圈 onShareTimeline () { },

RSA加密解密(二)——用shell加密后java无法解密的问题

我们需要用shell生成加密原文数据&#xff0c;存入mysql中&#xff0c;然后用java取出mysql中的加密数据并解密出原文。 这个任务中遇到的最大问题是&#xff0c;用shell进行base64编码后的加密数据&#xff0c;无法被java的解密程序解密&#xff0c;会报错。 Exception in t…

访问学者感谢信|人文社科工作者赴北欧访学

编者按&#xff1a;这位访问学者从委托我们申请到获得邀请函只用了一个月时间。为了表达感激之情&#xff0c;其当时就写了这封感谢信&#xff0c;但依据我们的惯例&#xff0c;一般是待申请者出国&#xff0c;一切安排妥当后再发成功案例。所以时至今日&#xff0c;才将该申请…

统计图柱形图绘制方法

统计图柱形图绘制方法 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图环形图绘制较难。 今提供条形图和柱形图的绘制方法&#xff0c;附加环形图和艺术环图的绘制方法供参考。 本方法采用C语言的最基本功能&…

PCL 计算点云AABB包围盒的体积

目录 一、AABB包围盒二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。爬虫自重,把自己当个人。 一、AABB包围盒 AABB包围盒又称了 轴对齐包围盒,是点云包围盒里最简单的一种,其计算方法也极其简单。获取包围盒之后,根据包围盒的长宽高进行体积计算即…

电销机器人是如何进行工作的

ai电销机器人&#xff0c;主要是解决电销企业筛选客户问题。 我们会帮你搭建好电销后台&#xff0c;你使用的时候只需要导入客户手机号&#xff0c;设置外呼时间&#xff0c;系统就可以帮你自动拨打电话&#xff0c;并把打出来的意向客户自动推送到你的微信上面。非常方便快捷…

在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度

QuickDemo.cpp #include<quick_opencv.h>//创建一个带滚动条的窗口&#xff0c;用于动态调整图像的亮度 static void on_track(int position, void* userdata) //回调函数:当滚动条的位置改变时被自动调用的回调函数 //position:滚动条的当前位置; userdata:用户提供的数…

Eclipse 创建 Hello World 工程

Eclipse 创建 Hello World 工程 1. Hello WorldReferences Download and install the Eclipse IDE. 1. Hello World Eclipse -> double click -> Launch 单击蓝色方框 (右上角) 最大化 IDE File -> New -> C Project -> Finish Project name&#xff1a;工程名…

办公记事常用工具:桌面记事本助你高效记事

在繁忙的办公环境中&#xff0c;我常常感到自己的大脑像是一个不停旋转的陀螺&#xff0c;各种待办事项、会议安排和灵感想法在脑海中交织&#xff0c;仿佛随时都要迸发出来。然而&#xff0c;只靠人脑记忆&#xff0c;不仅辛苦&#xff0c;而且容易出错。在这样的背景下&#…

Unity之闪电侠大战蓝毒兽

目录 &#x1f3a8;一、创建地形 &#x1f3ae;二、创建角色 &#x1f3c3;2.1 动画 &#x1f3c3;2.2 拖尾 &#x1f3c3;2.3 角色控制 ​&#x1f3c3;2.4 技能释放 &#x1f3c3;2.5 准星 &#x1f4f1;三、创建敌人 &#x1f432;3.1 选择模型 &#x1f432;3.…