当前位置: 首页 > news >正文

汇川AM402和上位机C#ModebusTcp通讯

目录

一、测试任务

二、测试环境

三、PLC工程

1、组态配置

2、ip地址、端口号

 3、全局变量定义

四、C#端Winform程序创建

1创建主界面

 2、创建子窗口

 3、运行生成,界面效果

4、Modebus协议说明

5、Modebus操作说明

六、测试

1、寄存器读测试

 2、MW1300寄存器的BIT位

3、写寄存器测试

4、PLC断电或者断网

 七、工程下载连接


一、测试任务

1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。

2、PC端在有的PLC断电、断网的情况下,界面不会阻塞卡死,对其它PLC读写正常。在断网的PLC重新连接网络可以手动连接。

二、测试环境

1、PLC设备:汇川AM402,编程软件InProShop(v1.7.3)

2、PC端:Win10系统、VS2013编程软件。

三、PLC工程

1、组态配置

2、ip地址、端口号

192.168.1.88

502

 3、全局变量定义

VAR_GLOBALStateArray 		AT%MW1300 		:ARRAY[1..200]	OF	WORD;_MW1300Bit0  	AT %MX2600.0	:BOOL;_MW1300Bit1  	AT %MX2600.1	:BOOL;_MW1300Bit2  	AT %MX2600.2	:BOOL;_MW1300Bit3  	AT %MX2600.3	:BOOL;_MW1300Bit4  	AT %MX2600.4	:BOOL;_MW1300Bit5  	AT %MX2600.5	:BOOL;_MW1300Bit6  	AT %MX2600.6	:BOOL;_MW1300Bit7 	AT %MX2600.7	:BOOL;_MW1300Bit8		AT %MX2600.8	:BOOL;_MW1300Bit9  	AT %MX2600.9	:BOOL;_MW1300Bit10  	AT %MX2600.10	:BOOL;_MW1300Bit11  	AT %MX2600.11	:BOOL;_MW1300Bit12  	AT %MX2600.12	:BOOL;_MW1300Bit13  	AT %MX2600.13	:BOOL;_MW1300Bit14  	AT %MX2600.14	:BOOL;_MW1300Bit15  	AT %MX2600.15	:BOOL;_MW860			AT%MW860		:WORD;_MW861			AT%MW861		:WORD;_MW862			AT%MW862		:WORD;_MW863			AT%MW863		:WORD;_MW864			AT%MW864		:WORD;_MW865			AT%MW865		:WORD;_MW866			AT%MW866		:WORD;_MW867			AT%MW866		:WORD;_MW868			AT%MW866		:WORD;	END_VAR

四、C#端Winform程序创建

1创建主界面

在主界面中添加两个Panel控件,用以加载两台PC的Client窗口界面。使用Panel的优点是,对于多台PLC设备,只需要创建一个子窗口加载到多个Panel控件中即可。

 2、创建子窗口

 3、运行生成,界面效果

4、Modebus协议说明

 注意:批量读寄存器,尽量不要太多,一般一次100个左右

            //MBAP报文头//buffer[0]  事务处理标识符Hi//buffer[1]  事务处理标识符Lo//buffer[2]  协议标识符 0x00//buffer[3]  协议标识符 0x00//buffer[4]  长度//buffer[5]  长度   即从buffer【6】--校验符前的长度//buffer[6]  单元标识符 建议:在采用0xFF作为“单元标识符”的无效值//请求数据//buffer[7]  功能码(0x03) 读多个寄存器//buffer[8]  起始地址//buffer[9]  起始地址//buffer[10] 寄存器数量1至125(0x7D)//buffer[11] 寄存器数量1至125(0x7D)

5、Modebus操作说明

批量读寄存器

        /// <summary>/// 读取批量寄存器值:122个寄存器 800-1400/// </summary>/// <returns></returns>public byte[] ReadMultiCmd(){readbuffer[5] = 0x06;           // 长度readbuffer[7] = 0x03;           //功能码readbuffer[8] = 0x05;           //起始地址-高位readbuffer[9] = 0x14;           //起始地址-低位readbuffer[10] = 0x00;readbuffer[11] = 0x7A;          //122个寄存器 1300-1422return readbuffer;}

写单个寄存器

        /// <summary>/// MW860写值/// </summary>/// <param name="value"></param>/// <returns></returns>public byte[] Write_MW860(int value){writebuffer[5] = 0x06;          // 长度writebuffer[7] = 0x06;          //功能码    writebuffer[8] = 0x03;          //起始地址-高位writebuffer[9] = 0x5C;          //起始地址-低位 d860 writebuffer[10] = 0x00;         //寄存器值writebuffer[11] = (byte)value;return writebuffer;}

六、测试

PLC只有一台。

1、寄存器读测试

读寄存器范围:mw1300-mw1500

给MW1300-MW1306如下赋值

 C#读取到的值

 2、MW1300寄存器的BIT位

3、写寄存器测试

写寄存器范围:mw860-mw868

C#端写操作

 PLC端接收到的

4、PLC断电或者断网

PLC重新上电后接入网络,只需要点击重新连接按钮即可。

 七、工程下载连接

 分别是Winform程序PLC程序

https://download.csdn.net/download/panjinliang066333/87523222

相关文章:

汇川AM402和上位机C#ModebusTcp通讯

目录 一、测试任务 二、测试环境 三、PLC工程 1、组态配置 2、ip地址、端口号 3、全局变量定义 四、C#端Winform程序创建 1创建主界面 2、创建子窗口 3、运行生成&#xff0c;界面效果 4、Modebus协议说明 5、Modebus操作说明 六、测试 1、寄存器读测试 2、MW1300寄…...

给你一个电商网站,你如何测试?功能测试及接口测试思路是什么?

功能测试思路 1、注册测试&#xff1a; 测试注册表单是否可以正确提交用户信息&#xff1b; 测试注册表单是否有输入限制&#xff0c;例如密码长度、邮箱格式等&#xff1b; 测试注册后是否可以正常登录。 2、登录测试&#xff1a; 测试登录表单是否可以正确提交用户信息&…...

Spring Boot 3.0系列【5】基础篇之应用配置文件

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot版本3.0.3 源码地址:https://gitee.com/pearl-organization/study-spring-boot3 文章目录 前言应用配置文件文件格式YAML获取配置属性方式1:@Value方式2: @ConfigurationProperties方式3: @PropertySource方式4…...

SQLyog图形化界面工具【超详细讲解】

目录 一、SQLyog 介绍 二、SQLyog 社区版下载 三、SQLyog 安装 1、选择Chinese后点击OK 2、点击“下一步” 3、选择“我接受”后点击“下一步” 4、点击“下一步” 5、修改安装位置&#xff08;尽量不要安装在C盘&#xff09;&#xff0c;点击“安装” 6、安装后点击“…...

Linux: 中断只被GIC转发到CPU0问题分析

文章目录1. 前言2. 分析背景3. 问题4. 分析4.1 ARM GIC 中断芯片简介4.1.1 中断类型和分布4.1.2 拓扑结构4.2 问题根因4.2.1 设置GIC SPI 中断CPU亲和性4.2.2 GIC初始化&#xff1a;缺省的CPU亲和性4.2.2.1 boot CPU亲和性初始化流程4.2.2.1 其它非 boot CPU亲和性初始化流程5.…...

模电学习10. MOS管简单应用电路

模电学习10. MOS管简单使应用电路一、开关和放大器1. 开关电路2. 放大电路二、时序电路中作为反相器使用三、双向电平转换电路1. 原理图2. 工作状态分析&#xff08;1&#xff09;分析SDA&#xff0c;信号从左向右&#xff08;2&#xff09;分析SDA&#xff0c;信号从右向左四、…...

轻松搞懂Linux中的用户管理

文章目录概念用户账户用户组用户权限用户管理工具概念 用户管理是Linux系统管理员必须掌握的重要技能之一。Linux系统是一个多用户操作系统&#xff0c;可以支持多个用户同时使用&#xff0c;每个用户拥有自己的账户和权限&#xff0c;因此管理员需要了解如何创建、管理和删除…...

力扣-丢失信息的雇员

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1965. 丢失信息的雇员二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他…...

FPGA采集AD7606全网最细讲解 提供串行和并行2套工程源码和技术支持

目录1、前言2、AD7606数据手册解读输入信号采集范围输出模式选择过采样率设置3、AD7606串行输出采集4、AD7606并行输出采集5、vivado仿真6、上板调试验证7、福利&#xff1a;工程代码的获取1、前言 AD7606是一款非常受欢迎的AD芯片&#xff0c;因为他支持8通道同时采集数据&am…...

CSS介绍

文章目录一. CSS介绍二. CSS的引入方式三. CSS选择器一. CSS介绍 定义: 层叠样式表作用: 美化界面: 设置标签文字大小,颜色,字体加粗等样式控制页面布局: 设置浮动,定位等样式 基本语法: 选择器{样式规则 } 样式规则: 属性名1: 属性值1 属性名2: 属性值2 属性名3: 属性值3 ..…...

Auto-encoder 系列

Auto-Encoder (AE)Auto-encoder概念自编码器要做的事&#xff1a;将高维的信息通过encoder压缩到一个低维的code内&#xff0c;然后再使用decoder对其进行重建。“自”不是自动&#xff0c;而是自己训练[1]。PCA要做的事其实与AE一样&#xff0c;只是没有神经网络。对于一个输入…...

【蓝桥杯入门不入土】变幻莫测的链表

文章目录一&#xff1a;链表的类型单链表双链表循环链表二&#xff1a;链表的存储方式三&#xff1a;链表的定义删除节点添加节点四&#xff1a;实战练习1.设计链表2. 移除链表元素最后说一句一&#xff1a;链表的类型 单链表 什么是链表&#xff0c;链表是一种通过指针串联在…...

axios的二次封装

方式一&#xff1a;将axios单独分装到某个配置文件中import axios from axios; const axiosApi axios.create({baseURL:http://127.0.0.1:3000,timeout:3000 }) export default axiosApi在组件中使用:import $http from axios配置文件的地址 $http.get(/student/test).then(re…...

GET与POST区别(最详细)

相同点&#xff1a;本质上都是TCP连接。 不同点&#xff1a;由于HTTP规定和服务器/浏览器限制&#xff0c;在应用过程中区别如下&#xff1a; 1.get产生一个TCP数据包&#xff0c;post 产生两个TCP数据包 get请求&#xff0c;浏览器会把http header和data一起发送&#xff0c…...

精选博客系列|将基于决策树的Ensemble方法用于边缘计算

在即将到来的边缘计算时代&#xff0c;越来越需要边缘设备执行本地快速训练和分类的能力。事实上&#xff0c;无论是手机上的健康应用程序、冰箱上的传感器还是扫地机器人上的摄像头&#xff0c;由于许多原因&#xff0c;例如需要快速响应时间、增强安全性、数据隐私&#xff0…...

JS混淆加密:Eval的未公开用法

JavaScript奇技淫巧&#xff1a;Eval的未公开用法 作者&#xff1a;http://JShaman.com w2sft&#xff0c;转载请保留此信息很多人都知道&#xff0c;Eval是用来执行JS代码的&#xff0c;可以执行运算、可以输出结果。 但它还有一种未公开的用途&#xff0c;想必很少有人用过。…...

π型滤波器 计算_π型滤波电路

滤波器在功率和音频电子中常用于滤除不必要的频率。而电路设计中&#xff0c;基于不同应用有着许多不同种类的滤波器&#xff0c;但它们的基本理念都是一致的&#xff0c;那就是移除不必要的信号。所有滤波器都可以被分为两类&#xff0c;有源滤波器和无源滤波器。有源滤波器用…...

大数据常见术语

大数据常见术语一览 主要内容包含以下&#xff08;收藏&#xff0c;转发给你身边的朋友&#xff09; 雪花模型、星型模型和星座模型 事实表 维度表 上钻与下钻 维度退化 数据湖 UV与PV 画像 ETL 机器学习 大数据杀熟 SKU与SPU 即席查询 数据湖 数据中台 ODS&#xff0c;DWD&…...

带你了解“函数递归”

目录 1. 什么是递归&#xff1f; 2. 函数递归的必要条件 2.1 接收一个整型值&#xff08;无符号&#xff09;&#xff0c;按照顺序打印它的每一位。 代码如下&#xff1a; 2.2 编写一个函数&#xff0c;不用临时变量求字符串长度 代码如下&#xff1a; 2.3 递归与迭代 …...

网络资源面经2

文章目录Kafka 原理&#xff0c;数据怎么平分到消费者生产者分区消费者分区Flume HDFS Sink 小文件处理Flink 与 Spark Streaming 的差异&#xff0c;具体效果Spark 背压机制具体实现原理Yarn 调度策略Spark Streaming消费方式及区别Zookeeper 怎么避免脑裂&#xff0c;什么是脑…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

Go语言多线程问题

打印零与奇偶数&#xff08;leetcode 1116&#xff09; 方法1&#xff1a;使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...