C#使用TCP-S7协议读写西门子PLC(五)-测试程序

news2024/11/12 17:49:45

上面四篇我们进行封装连接PLC以及读写PLC内存地址表 

C#使用TCP-S7协议读写西门子PLC(一)-CSDN博客

 C#使用TCP-S7协议读写西门子PLC(二)-CSDN博客

 C#使用TCP-S7协议读写西门子PLC(三)-CSDN博客

 C#使用TCP-S7协议读写西门子PLC(四)-CSDN博客

这里我们进行测试操作

西门子PLC-S7协议测试读写基础数据类型、字符串、Unicode字符串、连续数组等

窗体应用程序PlcSiemesS7Demo应用程序文件清单如下图所示

窗体FormS7Protocol设计器如下:

窗体设计器代码如下:

文件FormS7Protocol.Designer.cs


namespace PlcSiemesS7Demo
{
    partial class FormS7Protocol
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows 窗体设计器生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要修改
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.panel1 = new System.Windows.Forms.Panel();
            this.cboSiemensPLCCategory = new System.Windows.Forms.ComboBox();
            this.label2 = new System.Windows.Forms.Label();
            this.btnDisconnect = new System.Windows.Forms.Button();
            this.btnConnect = new System.Windows.Forms.Button();
            this.txbPort = new System.Windows.Forms.TextBox();
            this.label3 = new System.Windows.Forms.Label();
            this.txbIP = new System.Windows.Forms.TextBox();
            this.label1 = new System.Windows.Forms.Label();
            this.rtxbDisplay = new System.Windows.Forms.RichTextBox();
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.btnReadWString = new System.Windows.Forms.Button();
            this.label12 = new System.Windows.Forms.Label();
            this.txtReadValWString = new System.Windows.Forms.TextBox();
            this.label13 = new System.Windows.Forms.Label();
            this.txtReadWStringLength = new System.Windows.Forms.TextBox();
            this.rtxtReadValArray = new System.Windows.Forms.RichTextBox();
            this.btnReadArray = new System.Windows.Forms.Button();
            this.label9 = new System.Windows.Forms.Label();
            this.label8 = new System.Windows.Forms.Label();
            this.txtReadArrayLength = new System.Windows.Forms.TextBox();
            this.btnReadString = new System.Windows.Forms.Button();
            this.label7 = new System.Windows.Forms.Label();
            this.txtReadValString = new System.Windows.Forms.TextBox();
            this.label4 = new System.Windows.Forms.Label();
            this.txtReadStringLength = new System.Windows.Forms.TextBox();
            this.btnReadBasic = new System.Windows.Forms.Button();
            this.label5 = new System.Windows.Forms.Label();
            this.txtReadValBasic = new System.Windows.Forms.TextBox();
            this.cboReadDataType = new System.Windows.Forms.ComboBox();
            this.label6 = new System.Windows.Forms.Label();
            this.label10 = new System.Windows.Forms.Label();
            this.label11 = new System.Windows.Forms.Label();
            this.txtOffsetAddress = new System.Windows.Forms.TextBox();
            this.cboRegisterCategory = new System.Windows.Forms.ComboBox();
            this.groupBox2 = new System.Windows.Forms.GroupBox();
            this.btnWriteWString = new System.Windows.Forms.Button();
            this.label14 = new System.Windows.Forms.Label();
            this.txtWriteValWString = new System.Windows.Forms.TextBox();
            this.label15 = new System.Windows.Forms.Label();
            this.txtWriteWStringLength = new System.Windows.Forms.TextBox();
            this.rtxtWriteValArray = new System.Windows.Forms.RichTextBox();
            this.btnWriteArray = new System.Windows.Forms.Button();
            this.label16 = new System.Windows.Forms.Label();
            this.btnWriteString = new System.Windows.Forms.Button();
            this.label18 = new System.Windows.Forms.Label();
            this.txtWriteValString = new System.Windows.Forms.TextBox();
            this.label19 = new System.Windows.Forms.Label();
            this.txtWriteStringLength = new System.Windows.Forms.TextBox();
            this.btnWriteBasic = new System.Windows.Forms.Button();
            this.label20 = new System.Windows.Forms.Label();
            this.txtWriteValBasic = new System.Windows.Forms.TextBox();
            this.cboWriteDataType = new System.Windows.Forms.ComboBox();
            this.label21 = new System.Windows.Forms.Label();
            this.label22 = new System.Windows.Forms.Label();
            this.txtDbNumber = new System.Windows.Forms.TextBox();
            this.panel1.SuspendLayout();
            this.groupBox1.SuspendLayout();
            this.groupBox2.SuspendLayout();
            this.SuspendLayout();
            // 
            // panel1
            // 
            this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            this.panel1.Controls.Add(this.cboSiemensPLCCategory);
            this.panel1.Controls.Add(this.label2);
            this.panel1.Controls.Add(this.btnDisconnect);
            this.panel1.Controls.Add(this.btnConnect);
            this.panel1.Controls.Add(this.txbPort);
            this.panel1.Controls.Add(this.label3);
            this.panel1.Controls.Add(this.txbIP);
            this.panel1.Controls.Add(this.label1);
            this.panel1.Location = new System.Drawing.Point(4, 4);
            this.panel1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(611, 87);
            this.panel1.TabIndex = 2;
            // 
            // cboSiemensPLCCategory
            // 
            this.cboSiemensPLCCategory.FormattingEnabled = true;
            this.cboSiemensPLCCategory.Location = new System.Drawing.Point(122, 52);
            this.cboSiemensPLCCategory.Name = "cboSiemensPLCCategory";
            this.cboSiemensPLCCategory.Size = new System.Drawing.Size(206, 20);
            this.cboSiemensPLCCategory.TabIndex = 14;
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Location = new System.Drawing.Point(8, 52);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(95, 12);
            this.label2.TabIndex = 13;
            this.label2.Text = "西门子PLC型号:";
            // 
            // btnDisconnect
            // 
            this.btnDisconnect.Enabled = false;
            this.btnDisconnect.Location = new System.Drawing.Point(494, 14);
            this.btnDisconnect.Name = "btnDisconnect";
            this.btnDisconnect.Size = new System.Drawing.Size(91, 28);
            this.btnDisconnect.TabIndex = 5;
            this.btnDisconnect.Text = "断开连接";
            this.btnDisconnect.UseVisualStyleBackColor = true;
            this.btnDisconnect.Click += new System.EventHandler(this.btnDisconnect_Click);
            // 
            // btnConnect
            // 
            this.btnConnect.Location = new System.Drawing.Point(371, 14);
            this.btnConnect.Name = "btnConnect";
            this.btnConnect.Size = new System.Drawing.Size(91, 28);
            this.btnConnect.TabIndex = 4;
            this.btnConnect.Text = "连接";
            this.btnConnect.UseVisualStyleBackColor = true;
            this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
            // 
            // txbPort
            // 
            this.txbPort.Location = new System.Drawing.Point(238, 14);
            this.txbPort.Name = "txbPort";
            this.txbPort.Size = new System.Drawing.Size(90, 21);
            this.txbPort.TabIndex = 3;
            this.txbPort.Text = "102";
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.Location = new System.Drawing.Point(184, 17);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(53, 12);
            this.label3.TabIndex = 2;
            this.label3.Text = "端口号:";
            // 
            // txbIP
            // 
            this.txbIP.Location = new System.Drawing.Point(62, 14);
            this.txbIP.Name = "txbIP";
            this.txbIP.Size = new System.Drawing.Size(106, 21);
            this.txbIP.TabIndex = 1;
            this.txbIP.Text = "192.168.1.10";
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Location = new System.Drawing.Point(8, 17);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(53, 12);
            this.label1.TabIndex = 0;
            this.label1.Text = "IP地址:";
            // 
            // rtxbDisplay
            // 
            this.rtxbDisplay.Location = new System.Drawing.Point(4, 622);
            this.rtxbDisplay.Name = "rtxbDisplay";
            this.rtxbDisplay.ReadOnly = true;
            this.rtxbDisplay.Size = new System.Drawing.Size(943, 232);
            this.rtxbDisplay.TabIndex = 3;
            this.rtxbDisplay.Text = "";
            // 
            // groupBox1
            // 
            this.groupBox1.Controls.Add(this.btnReadWString);
            this.groupBox1.Controls.Add(this.label12);
            this.groupBox1.Controls.Add(this.txtReadValWString);
            this.groupBox1.Controls.Add(this.label13);
            this.groupBox1.Controls.Add(this.txtReadWStringLength);
            this.groupBox1.Controls.Add(this.rtxtReadValArray);
            this.groupBox1.Controls.Add(this.btnReadArray);
            this.groupBox1.Controls.Add(this.label9);
            this.groupBox1.Controls.Add(this.label8);
            this.groupBox1.Controls.Add(this.txtReadArrayLength);
            this.groupBox1

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高并发内存池项目(3)——项目框架介绍与实现线程池

一&#xff0c;项目的整体架构 这个高并发内存池的主要分为三层&#xff0c;分别是TheradCache层&#xff0c;CentralCache层&#xff0c;PageCache层。如下图所示&#xff1a; 二&#xff0c;原理讲解 当我们来了一个任务要申请内存时&#xff0c;先经过第一层ThreadCache。…

基于AI+多技术融合在流域生态系统服务评价、水文水生态分析、碳收支、气候变化影响、制图等领域中的应用

流域生态系统服务在环境保护与资源管理中具有不可替代的重要性。随着全球气候变化和人类活动对自然环境的压力日益增大&#xff0c;流域生态系统的稳定性和健康状况面临严峻挑战。水资源短缺、洪水频发、水质污染、生物多样性减少等问题&#xff0c;正在威胁流域内及其下游区域…

STMCuBeMX新建项目的两种匪夷所思的问题

错误一、保存地址名中有中文 错误&#xff1a;error1-haveCHinese_有中文\error1-haveCHinese_有中文.axf: error: L6002U: Could not open file error1-havechinese_???\stm32f1xx_it.o: No such file or directory 解决方法&#xff1a;重新导出&#xff0c;并且不要用中文…

Bandicam录制视频发白(过曝)如何解决?

Bandicam录制视频发白&#xff08;过曝&#xff09;如何解决&#xff1f; 一&#xff0c;问题现象二&#xff0c;解决方法 一&#xff0c;问题现象 录制视频时&#xff0c;视频播放的颜色比笔记本电脑上的颜色差别比较大&#xff0c;显示比实际的颜色发白。 二&#xff0c;解…

会计确认数据资产相关问题解读:权属和合规

会计确认数据资产相关问题中的权属和合规性是企业必须深入理解和重视的两个方面。 企业会计准则上明确了资产&#xff1a;企业合法拥有和控制的&#xff0c;预期会给企业带来经济利益的资源都叫资产。如何理解数据资产的权属及合规&#xff1f;如何确保企业合法拥有、控制数据…

Java 入门指南:Java 并发编程 —— 同步工具类 CyclicBarrier(循环屏障)

文章目录 同步工具类CyclicBarrier构造函数常用方法工作机制使用步骤适用场景CyclicBarrier与CountDownLatch的区别示例代码 同步工具类 JUC&#xff08;Java.util.concurrent&#xff09;是 Java 提供的用于并发编程的工具类库&#xff0c;其中包含了一些通信工具类&#xff…

泰勒斯威夫特是认真的:我已经做过研究我做出了选择,支持哈里斯 !呼吁粉丝赶紧投票!

泰勒说她将投票给哈里斯,因为"她为权利而战,我相信需要一个战士来捍卫他们。" 泰勒:这真的让我对人工智能产生了恐惧 当拥有3亿多粉丝的碧昂丝将主题曲授权给哈里斯的时候就已经暗示了她的倾向性 如果碧昂丝和斯威夫特6亿粉丝的哈里斯选票转化率为30%&#xff0c;…

全国各地身份证号开头6位数字及地区对照表

具体请前往&#xff1a;全国各地身份证号开头6位数字-省市县/区对照表

计算语言学(一)基础

概率论的几个概念 熵、互信息 神经网络基础 MLP CNN RNN Seq2Seq LSTM Transformer 语料库与知识库

L2线性回归模型

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 鸢尾花数据集的单变量与多变量预测 在这周学习如何使用 机器学习 模型对鸢尾花&#xff08;Iris&#xff09;数据集进行单变量与多变量预测。我们将使用鸢尾花…

北京中实新材料公司:安全筑基,共绘新材料产业新篇章

北京中实新材料有限责任公司(以下简称“北京中实”),作为中关村科技发展(控股)股份有限公司旗下的重要成员,近年来在安全生产、技术创新及企业合作等方面取得了显著进展。近期,公司围绕安全生产月及新材料研发中心成立等核心活动,展开了一系列富有成效的工作,进一步推动了企业的…

【Java算法】递归

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【算法工作坊】算法实战揭秘 &#x1f347;一.递归 概念 递归是一种解决问题的方法&#xff0c;其中函数通过调用自身来求解问题。这种方法的关键在于识别问题是否可以被分解为若干个相似但规模更小…

深入Redis:复杂的集群

广义的集群&#xff0c;可能说只要是多台机器组成了分布式系统&#xff0c;就可以称之为集群。 狭义的集群&#xff0c;指的是Redis提供的集群模式&#xff0c;这个集群模式之下&#xff0c;主要是解决存储空间不足的问题&#xff0c;以及如何拓展存储空间。 之前的哨兵模式&…

C++中string的简单实现

string的简单实现中一些函数的实现可以复用一些其他的函数来实现&#xff1b;比较重要的是在实现是深浅拷贝问题 目录 string的结构 实现构造和析构 reserve扩容 容量 push_back和append insert和erase的实现 swap的实现&#xff08;不是成员函数但是string类的友元&…

【c++】类和对象详解

✅博客主页:爆打维c-CSDN博客​​​​​​ &#x1f43e; &#x1f539;分享c语言知识及代码 来都来了! 点个赞给博主个支持再走吧~&#xff01; 一.类的定义 &#xff08;1&#xff09;类定义格式 class为类定义的关键字&#xff0c;定义一个类格式如下: class 类名{//代码…

kubelet 探针

目录 1 k8s中kubelet 探针的介绍 1.1 探针是由 kubelet 对容器执行的定期诊断: 1.2 Kubelet 可以选择是否执行在容器上运行的三种探针执行和做出反应&#xff1a; 1.3 ReadinessProbe 与 LivenessProbe 的区别 1.4 StartupProbe 与 ReadinessProbe、LivenessProbe 的区别 2 实…

CCRC-DSA数据安全评估师:网络安全风险评估

1.网络安全风险评估概述 1.1概念 在当今信息化时代&#xff0c;网络安全成为了组织不可或缺的一部分。 风险评估作为一种科学方法&#xff0c;其目的是对网络系统的保密性、完整性、可控性和可用性这四个核心安全属性进行深入分析。 这一过程不仅包括识别网络系统中存在的脆…

Snipaste无法使用F1、F3等快捷键的保姆级解决方法

在Snipaste中按F1、F3等快捷键无效的可能原因&#xff1a; 1. 软件设置&#xff1a; 检查Snipaste的设置&#xff0c;确保F1被正确设置为截屏热键&#xff0c;并确认没有其他软件占用或冲突。 2. 热键冲突&#xff1a; 笔记本电脑的功能键&#xff08;F1-F12&#xff09;通常…

MySQL 数据库:原理、应用与发展

摘要&#xff1a;本文深入探讨了 MySQL 数据库相关内容。首先介绍了 MySQL 作为开源关系型数据库管理系统的显著特点&#xff0c;包括易用性、跨平台性、高性能、可扩展性、开源免费以及数据安全性等方面。接着详细阐述了其安装与配置过程&#xff0c;涵盖在不同操作系统上的安…

STM32使用 :串口的接收与发送

一、串口 在 STM32 中&#xff0c;串口&#xff08;UART&#xff0c;通用异步收发传输器&#xff09;是用于串行通信的外设。它在嵌入式系统中的作用非常广泛&#xff0c;主要包括几个方面 数据通信 串口用于微控制器与其他设备之间的数据传输。这些设备可以是其他微控制器、…