【傻瓜级JS-DLL-WINCC-PLC交互】7.​C#直连PLC并读取PLC数据

思路

JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与WINCC之间进行连接,实现WINCC与PLC之间连接,最后自己封装方法把他们串联起来。

目录

思路

​C#直连PLC并读取PLC数据

1.首先你得知道PLC网络IP

2.端口默认 102

3.查看机架和插槽

4.查看新建数据的变量地址

5.配置PLC权限,让他可以直接C#拥有读写权限

​编辑6.代码编写案例地址

7.代码讲解

 7.1C#读取PLC的数据,需要用到 S7.Net

7.2执行案例


​C#直连PLC并读取PLC数据

1.首先你得知道PLC网络IP

在博途中查看到,运行的IP地址为 192.168.0.1

2.端口默认 102

3.查看机架和插槽

从下图中可以看到,机架和插槽为0,1

4.查看新建数据的变量地址

地址公式:数据模块编号 + "." + 数据类型(DBX,DBW,DBD 对应 Bool,ushort,float)+变异量

所以下面的变量数据地址为:BD3.DBX0.0

5.配置PLC权限,让他可以直接C#拥有读写权限

如果不走这一步,后面代码汇报做

Unhandled exception. S7.Net.PlcException: Received 12 bytes: '32-02-00-00-00-00-00-00-00-00-81-04', expected 19 bytes.

---> S7.Net.PlcException: Received 12 bytes: '32-02-00-00-00-00-00-00-00-00-81-04', expected 19 bytes.

设置完全权限

勾选 允许来自远程对象的PUT/GET通讯访问

然后将项目从新编译,并装载进PLC!!!!!!!!!!!!!!!!!!!!!!!!!!!

6.代码编写案例地址

https://download.csdn.net/download/qq_59747594/88580348

7.代码讲解

将项目用Visual Studio打开,demo案例在下面位置

 7.1C#读取PLC的数据,需要用到 S7.Net

using S7.Net;
//引用通信,可以自行网上搜索如何安装,一堆资料namespace ConsoleApp1
{internal class Program{static void Main(string[] args){Console.WriteLine("Hello, World!");const short TestServerPort = 102;//PLC运行的端口地址const string TestServerIp = "192.168.0.1";//PLC运行的IP地址// new Plc(CpuType.S71200, PLC的IP, PLC的端口, PLC的机架, PLC的插槽);var plc = new Plc(CpuType.S71200, TestServerIp, TestServerPort, 0, 1);plc.Open();Console.WriteLine($"是否已连接: {plc.IsConnected}");// 数据变量的地址var addr = "DB1.DBX0.0";Console.WriteLine($"原始值: {plc.Read(addr)}");plc.Write(addr, 1);Console.WriteLine($"修改后: {plc.Read(addr)!}");Console.ReadLine();}}
}

7.2执行案例

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

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

相关文章

使用Redis实现接口防抖

说明:实际开发中,我们在前端页面上点击了一个按钮,访问了一个接口,这时因为网络波动或者其他原因,页面上没有反应,用户可能会在短时间内再次点击一次或者用户以为没有点到,很快的又点了一次。导…

Notepad++批量添加引号

工作中经常会遇到这样情景:业务给到一批订单号,需要查询这批订单的某些字段信息。在where条件中需要传入这些订单号的数组,并且订单号用引号引起,用引号隔开。 字符串之间长度相同 可以按住CtrlAlt和鼠标左键选中区域&#xff0…

ora.LISTENER.lsnr状态为Not All Endpoints Registered

客户的监控反馈有个监听无法连接,登录环境检查发现ora.LISTENER.lsnr的状态为Not All Endpoints Registered,如下 [rootdb2 ~]# crsctl status res -t -------------------------------------------------------------------------------- NAME …

C/C++内存管理(含C++中new和delete的使用)

文章目录 C/C内存管理(含C中new和delete的使用)1、C/C内存分布2、C语言中动态内存管理方式:malloc/calloc/realloc/free3、C动态内存管理3.1、new/delete操作内置类型3.2、new/delete操作自定义类型 4、operator new与operator delete函数5、…

Jave内存模型 与 CPU硬件架构 的交互图

JMM里所讲的主内存、工作内存与Java内存区域中的Java堆、栈、方法区等并不是同一个层次的对内存的划分,这两者基本上是没有任何关系的。 如果两者一定要勉强对应起来,那么从变量、主内存、工作内存的定义来看,主内存主要对应于Java堆中的对象…

[PyTorch][chapter 3][李宏毅深度学习-偏差,方差,过拟合,欠拟合]

前言: 这章的目的主要是通过诊断错误的来源,通过错误的来源去优化,挑选模型。 通过本章掌握 过拟合(overfitting)和欠拟合(underfitting)出现原因及解决方案. 目录: 1 概述 2 方差,偏差现象 3 过拟合和欠拟合 4 模型选择 5 概率论回顾 一 概…

Linux:windows 和 Linux 之间文本格式转换

背景 在 Windows 上编辑的文件,放到 Linux 平台,有时会出现奇怪的问题,其中有一个是 ^M 引起的,例如这种错误: /bin/bash^M: bad interpreter 这个问题相信大家也碰到过,原因是 Windows 和 Linux 关于换行的…

【JS Promise, Promise.all 与 async/await用法详解】

目录 PromisePromise基本使用Promise可进行连续回调Promise回调可接受入参1.工作原理 async/await总结参考文档: 异步 let a 0setTimeout(() > {a 1}, 1000)console.log(a) // 0此时这个延迟就成为异步执行的了,a值还没有变1就被使用输出&#xff0…

linux下实现Qt程序实现开机自启动

1.原理 要想实现开机自启动,首先,QT是没有这种实现的,最好是靠电脑开机的启动目录启动软件,下面这个目录 /etc/xdg/autostart 这是操作系统中用于配置启动项的目录,该目录下存放着开机自启动的启动器(.desktop)文件…

Flink-时间流与水印

时间流与水印 一、背景二、时间语义1.事件时间(event time)2.读取时间(ingestion time)3.处理时间(processing time) 三、水印-Watermarks1.延迟和正确性2.延迟事件3.顺序流4.无序流5.并行流 四、Windows1.…

初识Java 18-5 泛型

目录 动态类型安全 异常 混型 C中的混型 替代方案 与接口混合 使用装饰器模式 与动态代理混合 本笔记参考自: 《On Java 中文版》 动态类型安全 在Java 5引入泛型前,老版本的Java程序中就已经存在了List等原生集合类型。这意味着,我们…

【计算机网络笔记】交换机

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

上海亚商投顾:沪指震荡下跌 成交量继续下破8000亿

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日震荡调整,深成指、创业板指午后跌超1%,北证50指数跌超7%,超百只北…

Windows11编译Hadoop3.3.6源码

由于https://github.com/kontext-tech/winutils还未发布3.3.6版本,因此尝试源码编译 目录 环境和安装包准备,见2zlib编译方法一:方法二: 配置文件更改1. maven阿里云镜像2. Node版本3. 越过Javadoc检查 编译HadoopError,其他报错…

JavaScript中的异步处理方法

JavaScript中的异步处理是开发者在日常开发过程中必须面对的一个重要问题。由于JavaScript是单线程的,因此对于一些可能需要长时间执行的操作,如网络请求、IO操作等,如果采用同步的方式,可能会导致应用程序的阻塞,降低…

科研学习|论文解读——Deep learning for anomaly detection in log data: a survey

摘要 自动日志文件分析能够及早发现系统故障等相关事件。特别是,自学习异常检测技术能够捕捉日志数据中的模式,然后向系统操作员报告意外的日志发生,而无需提前提供或手动建模异常场景。最近,越来越多的利用深度学习方法来实现此目…

ExoPlayer - Failed to initialize OMX.qcom.video.decoder.avc

人莫鉴于流水而鉴于止水,唯止能止众止 1. 背景 使用ExoPlayer,我不信你没遇到过这个问题: java.lang.IllegalArgumentException: Failed to initialize OMX.qcom.video.decoder.avc 详细内容如下图所示: 2. MediaCodec(解码器) …

FastApi接收不到Apifox发送的from-data字符串_解决方法

接收不到Apifox发送的from-data字符串_解决方法 问题描述解决方法弯路总结弯路描述纵观全局小结 问题描述 这里写了一个接口,功能是上传文件,接口参数是file文件和一个id字符串 gpt_router.post("/uploadfiles") async def create_upload_fi…

配置自动化部署Jenkins和Gitea

配置自动化部署 这里使用的是JenkinsGitea 如果不知道怎么安装Jenkins和Gitea可以参考下面文章 https://blog.csdn.net/weixin_46533577/article/details/134644144 我的另一篇文章 介绍 前端 先说下自己的情况,因为自己服务器原因,使用的服务器内…