天枫信息技术,专注于.NET技术的开发与应用

All Posts


基于欧姆龙PLC#FinsTcp协议上位机通讯(二)-C#通讯模块开发

上一篇我们介绍了如何配置连接PLC(注意网线记得插到PLC以太网口!!!还有一个好像是伺服的网口不要插错了),接下来将介绍欧姆FinsTcp协议及使用C#实现过程。FinsTcp协议报文格式 获取PLC节点地址 FINS comm IO存储器地址标识 2.实现过程 以上为FinsTCP协议主要核心内容,代码原理很简单就是通过SOCKET TCP IP,发送连接、读取、写入报文数据,接收解析返回数据;基于TcpClient的发送与接收Byte[]方法发送BYTE1 pub ...

基于 欧姆龙 PL C# FinsTcp 协议 上位 通讯 C# 通讯 模块 开发

.NET 微服务——CI/CD(2):自动打包镜像

准备工作 一、开启docker的tcp 我的服务器是linux,以端口2376为例,找到docker.service,在ExecStart下新增这段代码即可:H tcp:0.0.0.0:2376 H unix:varrundocker.sock效果图:然后重载服务列表,重启docker,语句:systemctl daemonreloadsystemctl restart docker二、Jenkins安装Docker插件 在插件管理搜索安装docker: 只需选择这一个,关联的Docker API、 ...

NET 服务 CI CD 自动 打包 镜像

iNeuOS工业互联网操作系统,增加DTU与平台实时交互的应用场景

目 录 1. 概述... 2 2. 平台演示... 2 3. 硬件设置... 2 4. 应用过程... 3 1. 概述DTU向下连接硬件传感器、向上与平台进行交互,但是DTU模块每次与平台连接后IP和PT是随机变化的,无法使用IP识别当前通信的设备。这时候需要特殊进行处理,识别当前DTU与设备是一个整体。 大概交互机制,如下图:2. 平台演示在线演示:http:www.ineuos.index.phpdemodemo30.html (注:自已注册 ...

iNeuOS 工业 互联网 操作系统 增加 DTU 平台 实时 交互 应用 场景

Task 使用详细[基础操作,异步原则,异步函数,异步模式]

线程是创建并发的底层工具,对于开发者而言,想实现细粒度并发具有一定的局限性,比如将小的并发组合成大的并发,还有性能方面的影响。 Task可以很好的解决这些问题,Task是一个更高级的抽象概念,代表一个并发操作,但不一定依赖线程完成。 Task从Framewk4.0开始引入,Framewk4.5又添加了一些功能比如Task.Run(),asyncawait关键字等, 在. Framewk4.5之后,基于任务的异步处理已经成为主流模式 (Taskbased Asynchronous PatternTAP)基于 ...

Task 使用 详细 基础 操作 异步 原则 异步 函数 异步 模式

C# 利用ASP.NET Core开发学生信息管理系统(一)

随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP. Ce也应运而生。本文主要利用ASP. Ce开发一个学生管理系统为例,简述ASP. Ce开发的常见知识点,仅供学习分享使用,如有不足之处,还请指正。 涉及知识点 开发学生管理系统,涉及知识点,如下所示:开发工具:Visual Studio 2019 目标框架:. 5.0 架构:MVC三层架构【ModelViewController】创建项目 文件新建项目ASP. Ce Web应用(模型视图控制器),如下所示:然后点击下一步,进入配置新项目页面 ...

C# 利用 ASP NET Core 开发 学生 信息管理系统

使用.NET 6开发TodoList应用(17)——实现数据塑形

系列导航及源代码使用. 6开发TodoList应用文章索引需求 在查询的场景中,还有一类需求不是很常见,就是在前端请求中指定返回的字段,所以关于搜索的最后一个主题我们就来演示一下关于数据塑形(Data Shaping)。 目标 实现数据塑形搜索请求。 原理与思路 对于数据塑形来说,我们需要定义一些接口和泛型类实现来完成通用的功能,然后修改对应的查询请求,实现具体的功能。 实现 定义通用接口和泛型类实现IDataShaper.csusing System.Dynamicnamespace TodoList. ...

使用 NET 开发 TodoList 应用 17 实现 数据 塑形

函数防抖、节流

函数防抖(debounce):当频繁持续触发事件时,如果在设定时间间隔内重复触发事件,每次触发时间就重新开始计时,直至指定时间间隔内没有再触发事件,事件处理函数才会执行一次。函数节流(throttle):当频繁持续触发事件时,保证每隔指定时间调用一次事件处理函数,指定间隔内只会调用一次。 debounce限制多长时间才能执行一次,throttle限制多长时间必须执行一次,一个限制上限、一个限制下限 函数防抖1 using System2 using System.ComponentModel3 using ...

函数 防抖 节流

利用代码生成工具Database2Sharp生成ABP VNext框架项目代码

我们在做某件事情的时候,一般需要详细了解它的特点,以及内在的逻辑关系,一旦我们详细了解了整个事物后,就可以通过一些辅助手段来提高我们的做事情的效率了。本篇随笔介绍ABP VNext框架各分层项目的规则,以及结合代码生成工具Database2Sharp来实现项目类代码,项目文件等内容的快速生成。 ABP VNext框架在官方下载项目的时候,会生成一个标准的空白项目框架,本代码工具不是替代这个项目代码生成,而是基于这个基础上进行基于数据表的增量式开发模块的需求(毕竟官方没有针对数据表的项目代码生成),最终所有 ...

利用 代码生成 工具 Database2Sharp 生成 ABP VNext 框架 项目 代码

.Net 线程安全集合

. 提供了基于生产消费模式的集合类,这些集合对多线程访问安全,定义在System.Collections.Concurrent名称空间中。这个名称空间中包括基础接口IProduceConsumerCollection,这个接口定义了线程安全集合的基本操作。这个名称空间中还包括常用的集合:BlockingCollection ConcurrentBag ConcurentDictionaryTKeyTValue ConcurrentQueue ConcurentStack在使用生产消费模式时,我们经常使用两 ...

Net 线程 安全 集合

记一次 WinDbg 分析 .NET 某工厂MES系统 内存泄漏分析

一:背景 1. 讲故事 上个月有位朋友加微信求助,说他的程序跑着跑着就内存爆掉了,寻求如何解决,截图如下:从聊天内容看,这位朋友压力还是蛮大的,话说这貌似是我分析的第三个 MES 系统了,看样子 . 在传统工厂是巨无霸的存在哈。。。 话不多说,一起用 Windbg 一探究竟吧。 二:Windbg 分析 1. 托管还是非托管 先看下进程的commit内存,用 !address summary 即可。0:000 !address summaryMapping file section regions... M ...

一次 WinDbg 分析 NET 工厂 MES 系统 内存 泄漏 分析