HslCommunication模拟西门子读写数据

news2025/1/11 21:47:38

导入HslCommunication

C#端代码(上位机)

这里要注意的是上位机IP用的当前电脑的IP。

using HslCommunication;
using HslCommunication.Profinet.Siemens;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace hslcommonicationDemo
{
    public partial class Form1 : Form
    {
        //创建PLC:西门子S1500
        SiemensS7Net plc = new SiemensS7Net(SiemensPLCS.S1500,"192.168.56.1");
        public Form1()
        {
            InitializeComponent();
            //机架号默认0 ,槽号默认1
            plc.Rack = 0;
            plc.Slot = 1;
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
        OperateResult operateResult;
        private void button1_Click(object sender, EventArgs e)
        {
             operateResult = plc.ConnectServer();
            if (operateResult.IsSuccess)
            {
                MessageBox.Show("连接成功!");
                panel1.Enabled= true;   
            }
            else {
                MessageBox.Show("连接失败!"); 
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
             operateResult = plc.ConnectClose();
            if (operateResult.IsSuccess)
            {
                MessageBox.Show("PLC已断开!");
                panel1.Enabled = false;
            }
            else
            {
                MessageBox.Show("断开失败!");
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            OperateResult<bool> result = plc.ReadBool(textBox1.Text);
            textBox2.Text = result.Content.ToString();
            
            OperateResult<short> result2 = plc.ReadInt16(textBox3.Text);
            textBox4.Text = result2.Content.ToString();

            OperateResult<float> result3 = plc.ReadFloat(textBox5.Text);
            textBox6.Text = result3.Content.ToString();

            MessageBox.Show("读取成功!");

        }

        private void button4_Click(object sender, EventArgs e)
        {
            plc.Write(textBox1.Text, bool.Parse(textBox2.Text));
            plc.Write(textBox3.Text, short.Parse(textBox4.Text));
            plc.Write(textBox5.Text, float.Parse(textBox6.Text));
            MessageBox.Show("写入成功!");
        }
    }
}

源码

https://download.csdn.net/download/liuming690452074/88527936

效果

参考
https://www.bilibili.com/video/BV1Zz4y1A7gU/?spm_id_from=333.880.my_history.page.click&vd_source=297c866c71fa77b161812ad631ea2c25

https://www.bilibili.com/video/BV1JM411g7tk/?spm_id_from=333.337.search-card.all.click&vd_source=297c866c71fa77b161812ad631ea2c25

HSL的源码

nullicon-default.png?t=N7T8https://gitee.com/taohuaguo/HslCommunication

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

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

相关文章

Ridgeline plot / 远山图 / 山脊图 怎么画?怎么优化?

工具 Origin 2022 当然&#xff0c;用Matlab、Python也是可以的。 颜色配置 色卡调整

ehcart散点图x轴不按照顺序排列的问题

如图所示&#xff0c;一开始我x轴用的type为category&#xff0c;所以导致x轴的顺序是乱的&#xff0c;如下所示&#xff1a; 后来去官网看了下文档&#xff0c;才知道只需要type改成value就可以了&#xff01;&#xff01;&#xff01;差点就去写for循环排序了呀

正交矩阵的定义

对于n阶矩阵A&#xff0c;如果&#xff0c;其中为单位矩阵&#xff0c;为A的转置矩阵&#xff0c;那么就称A为正交矩阵。 对于正交矩阵&#xff0c; 对于正交矩阵&#xff0c;其列向量都是单位向量&#xff0c;行向量都是单位向量

Databend 开源周报第 119 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 用户案例&#…

ENVI IDL:如何生成FY4A快照

01 数据说明 FY4A全圆盘&#xff08;DISK&#xff0c;全球&#xff09;多光谱影像&#xff0c;panoply软件打开数据层次结构如下&#xff1a; 我们生成快照主要使用到其中的NOMChannel01、NOMChannel02、NOMChannel03进行快照显示&#xff0c;注意我并没有进行辐射定标。 02 生…

《QT从基础到进阶·二十三》弹窗提示框QMessageBox和QCloseEvent事件

1、正常信息提示 QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);消息框按钮判断&#xff1a; if(QMessageBox::Ok QMessageBox::warning(this,"温馨提示","是否保存设置?…

【Android】TabLayout设置使用自定义的样式的图片显示问题

序言 TabLayout我们经常使用&#xff0c;用来和ViewPager2进行组合使用&#xff0c;做多Fragment切换页面效果。 TabLayout我们经常看到的的显示效果是上面文字&#xff0c;下面一个线段&#xff0c;在各大浏览器/新闻类APP可以看到&#xff0c;这个效果也是对TabLayout配置参…

2609. 最长平衡子字符串

2609. 最长平衡子字符串 难度: 简单 来源: 每日一题 2023.11.08 给你一个仅由 0 和 1 组成的二进制字符串 s 。 如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量&#xff0c;则认为 s 的这个子字符串是平衡子字符串。请注意&#xff0c;空子字符串也…

【数据结构】树与二叉树(十四):二叉树的基础操作:查找给定结点的父亲(算法Father )

文章目录 5.2.1 二叉树二叉树性质引理5.1&#xff1a;二叉树中层数为i的结点至多有 2 i 2^i 2i个&#xff0c;其中 i ≥ 0 i \geq 0 i≥0。引理5.2&#xff1a;高度为k的二叉树中至多有 2 k 1 − 1 2^{k1}-1 2k1−1个结点&#xff0c;其中 k ≥ 0 k \geq 0 k≥0。引理5.3&…

C# Spire.Pdf将PDF文件转换为Word文件

一.开发框架&#xff1a; .NetCore6.0 工具&#xff1a;Visual Studio 2022 二.思路&#xff1a; 1.界面上传PDF文件&#xff0c;并保存 2.PDF文件转换为Word文件并保存 3.使用SHA256Hash判断文件是否已经转换过了&#xff0c;转换过了的话&#xff0c;就返回原先转换过的文…

数据——最为直接的答案

身处于这样一个数字化快速发展、竞争强烈的时代&#xff0c;不管是企业还是个人&#xff0c;大家都需要及时获取前沿动态信息&#xff0c;密切关注市场的变化。但是&#xff0c;在不计其数的企业中&#xff0c;到底行业top 是哪些企业引领潮流&#xff1f; 只有数据能告诉你最…

一款免费好用的制作电子杂志网站,发现新大陆~

你是不是也厌倦了传统纸质杂志的限制&#xff0c;想要尝试一种全新的阅读体验&#xff1f;那么&#xff0c;今天我要向你推荐的这款免费好用的制作电子杂志网站&#xff0c;绝对能让你眼前一亮&#xff01; 这款网站就是FLBOOK在线制作电子杂志平台&#xff0c;并且界面简洁、操…

设计模式之模版方法(TemplateMethod)

模版方法 钩子函数 回调函数 在父类里面有一个模版方法&#xff0c;在这个方法里面调用了op1&#xff0c;op2&#xff0c;op3… 在子类里面如果想要改变父类的op1和op2 只需要重写op1和op2&#xff0c;那么这个重写之后的方法&#xff0c;可以在父类里面直接调用的到 例子: J…

LabVIEW中NIPackageManager功能介绍

LabVIEW中PackageManager功能介绍 使用NIPackage Manager可安装、更新、修复和删除NI软件。 安装NI软件 使用PackageManager浏览和安装NI软件。 1. 在浏览产品选项卡上&#xff0c;单击产品类别以显示该类别中的可用产品。 2. 选择要安装的产品&#xff0c;然后单击…

20 个好用的一行 Java代码

今天分享给大家20个 令人惊叹的 Java一行代码&#xff0c;让你们的工作更轻松。一起来看看吧&#xff01; 1. 获取浏览器 Cookie 的值 使用document.cookie 来获取 Cookie 的值。 2. 将 RGB 转换为十六进制 3. 复制到剪贴板 使用 navigator.clipboard.writeText 轻松将任何文本…

Cesium 点线面实体

1.点 const point viewer.entities.add({ id: point, position: Cesium.Cartesian3.fromDegrees(113, 30), point: { pixelSize: 20, //像素 color: Cesium.Color.DEEPPINK, outlineColor: Cesium.Color.fromCssColorString(#fff), outlineWidth: 2, // 像素 }, }); 2.图标标注…

医院等级评审,离不开医院不良事件报告系统

医院不良事件报告系统全套源码 不良事件管理系统源码 不良事件上报系统对事件的报告、处置、跟踪、评价、分析、改进、学习等进行了综合管理&#xff0c;通过双向互评机制实现临床科室与职能部门之间的进一步互动&#xff0c;加强不良事件报告处置过程中的信息互通能力。 围绕…

Sonatype Nexus部署docker安装nexus3

Nexus是一个强大的Maven仓库管理器&#xff0c;它极大地简化了自己内部仓库的维护和外部仓库的访问。 1、查看可用的 Nexus3版本 可以通过 Sort by 查看其他版本的 nexus3&#xff0c;默认是最新版本 sonatype/nexus3:latest。 https://hub.docker.com/r/sonatype/nexus3/tags…

猫罐头如何选择?最受欢迎的5款猫罐头推荐!新手养猫速看!

对于一个刚入门的养猫新手来说&#xff0c;面对市面上琳琅满目的猫罐头选择确实让人头大。我们总想选到营养价值高的罐头&#xff0c;但又怕猫咪不喜欢吃&#xff0c;还担心选到不安全的产品。 作为家里有5只猫猫的铲屎官来说&#xff0c;养猫的这几年可以说是血泪史了&#x…

为什么你应该学习Go语言?

终于等到你&#xff01;Go语言——让你用写Python代码的开发效率编写C语言代码。 一、为什么互联网世界需要Go语言 世界上已经有太多太多的编程语言了&#xff0c;为什么又出来一个Go语言&#xff1f; 硬件限制&#xff1a;摩尔定律已然失效 摩尔定律&#xff1a;当价格不变…