C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版)

这篇具有很好参考价值的文章主要介绍了C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、先上图

前面10讲,让你爽煹了肝,已经进入最后收尾阶段,这节来个常规应用,让前面的技能直接飞上天,我们要做的界面软件是这样的,虽然没有潘金莲漂亮,但也是爆抱:

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

2、如何爆?

1、创建plc中的寄存器数据

这里经过与PLC电气硬件工程师沟通,明确了这3个区的寄存器代表的含义,具体哪些寄存器存放的是什么数据,需要与他们仔细沟通,并用excel记录下来,现在只是举例,说明现场有4个窑炉,每个窑炉有温度,水位,转速,转角,状态,分别是CIO区的BOOL,H区的SHORT,W区的FLOAT数据类型,这个关键,需要一个个数据地址要明确清晰,不出差错。

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

将12个地址保存在excel文件中,程序中来读取这个excel,也就是说我们要将现场需要采集PLC数据的寄存器地址全部放在EXCEL文件中,统一管理和程序读取利用起来,这很重要。

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

2、创建winform项目

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORMC#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

3、创建相关目录,引入NPOI,SQLite,OmronFins通信库

 C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

PLC变量实体类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OmRonMesFormsApp.Model
{
    public class PlcVariableModel
    {
        /// <summary>
        ///名称
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public string State { get; set; }
        /// <summary>
        /// 温度
        /// </summary>
        public string Temperature { get; set; }
        /// <summary>
        /// 水位
        /// </summary>
        public string Waterlevel { get; set; }
        /// <summary>
        /// 转速
        /// </summary>
        public string Speed { get; set; }
        /// <summary>
        /// 转角
        /// </summary>
        public string Corner { get; set; }
        /// <summary>
        /// 时间
        /// </summary>
        public string Inserttime { get; set; }
    }
}

4、在sqlite数据库中创建数据及表

这里简单介绍下sqlite数据库,这个数据库很好中,虽然功能没有sqlserver,mysql,oracle等强大,但它在上位机软件中非常方便,不需要安装,不需要配置,所有sql命令都支持,不太清楚的可百度求助下。

注意将sqlite数据库放在项目编译生成的debug目录下,因为程序编译后会有debug目录,这样方便访问,便于部署和移植项目

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

 

5、UI布局

注意这里布局用到了传统winform控件和自定义的控件,以增强视觉感观。

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

 6、编写逻辑

连接代码:

注意这里用到了定时器,因为要实时获取PLC数据,必须使用定时读取功能,具体多少时间读一次,自己可以修改

 /// <summary>
 /// 连接Plc
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnOpen_Click(object sender, EventArgs e)
 {
     string ip = txtIPAddress.Text.Trim();
     string port = txtPort.Text.Trim();
     finsTcp = new FinsTcp(ip, Convert.ToInt32(port), (byte)10, (byte)04);// 创建连接 
     var result = finsTcp.Connect();// 开始连接PLC
     if (!result.IsSuccessed)
     {
         MessageBox.Show(result.Message);
         return;
     }
     xktToggle4.Checked = true;
     SetTextDisable(true);
     this.btnOpen.Enabled = false;
     this.btnClose.Enabled = true;

     if (result.IsSuccessed)
     { 
         plcTimer.Tick += PlcTimer_Tick;
         plcTimer.Enabled = true;
         plcTimer.Start();
         plcTimer.Interval = 8000 * 1;
     }
 }

 C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

 窗体加载时,就启用定时器,读取plc寄存器的变量地址

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM 

这里思路很重要,不要乱手脚,不要乱手脚,稳住方向盘。

3、运行软件

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

 10秒后加载最新的数据。

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

连接PLC开始实时读取数据

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

稍等一下,自动读取数据

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

对比下PLC的数据,一致的,成功的。

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

修改下数据,将cio100.0,100.1改为1,看看实时读取了没有,设备停止了,界面有实时监测

 C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

修改下数据,将H100.0,100.1改为65,看看实时读取了没有,数据有变化了,界面有实时监测

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM

数据准确无误,效果帅B了,可以爆肝了。

打字不易,截图不易,代码不易,准备不易,原创不易,多多点赞收藏,江湖有你,共同致富。

C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版),C#上位机开发笔记,c#,开发语言,欧姆龙,PLC,上位机,WINFORM文章来源地址https://www.toymoban.com/news/detail-819103.html

到了这里,关于C#上位机与欧姆龙PLC的通信11----【爆肝了】上位机应用开发(Winform版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 欧姆龙CX系列PLC串口转以太网欧姆龙cp1hplc以太网连接电脑

    你是否还在为工厂设备信息采集困难而烦恼?捷米特JM-ETH-CX转以太网通讯处理器为你解决这个问题! 捷米特JM-ETH-CX转以太网通讯处理器专门为满足工厂设备信息化需求而设计,可以用于欧姆龙多个系列PLC的太网数据采集,非常方便构建生产管理系统。而且,该处理器采用模块

    2024年02月16日
    浏览(49)
  • WPF真入门教程26--项目案例--欧姆龙PLC通讯工具

    前面已经完成了25篇的文章介绍,概括起来就是从0开始,一步步熟悉了wpf的概念,UI布局控件,资源样式文件的使用,MVVM模式介绍,命令Command等内容,这节来完成一个实际的项目开发,虽然小案例,但是可以把前面的知识融合起来,比如控件的布局,命令的绑定,视图模型的

    2024年02月02日
    浏览(45)
  • ETHERNET/IP 转ETHERCAT连接倍福和欧姆龙PLC的配置方法

    ETHERNET/IP和ETHERCAT是两种不同的协议,它们在工业生产中都有广泛的应用。然而,由于协议不同,这两种设备之间无法通讯,这给工业生产带来了很大的麻烦。而捷米JM-EIP-ECAT网关应运而生,它能够连接到ETHERNET/IP总线和ETHERCAT总线中,实现两种不同协议设备之间的通讯。这个网

    2024年02月14日
    浏览(55)
  • 欧姆龙plc编程软件CX-Progammer v9.8升级教程

    一、前言 1、欧姆龙CP2E需要用CX-Progammer v9.7以上版本,非v9.7以上版本的编程软件,打开时无CP2E的选择。          2、百度网盘下载链接:https://pan.baidu.com/s/1A-6VOl4oPobOeTBYfT-HWw  提取码:kb72 1、下载完成后,得到文件名为 “CXOUpgradeUtility_V4” 的压缩包: 2 、解压开双击解压

    2024年02月16日
    浏览(148)
  • EtherNet Ip工业RFID读写器与欧姆龙PLC 配置示例说明

    一、准备阶段 POE交换机 欧姆龙PLC 支持EtherNet Ip协议 CX-Programmer 9.5 配置软件 二、配置读卡器 1、打开软件 2、选择网卡,如果多网卡的电脑请注意对应所接的网卡,网卡名一般为“Network adapter \\\'Realtek PCIe GBE Family” 3、点击“选择网卡”,再点“扫描设备” 4、修改IP,选中某设

    2024年02月20日
    浏览(43)
  • 欧姆龙NJ/NX系列PLC 基于以太网的CIP通讯(EtherNet/IP)

    CIP (Common Industrial Protocol, 通用工业协议) 是由 ODVA组织提出并维护的具有增强服务的自动化通讯协议。是一种使用生产者-消费者通信模型的与媒体无关的协议,并且是上层的严格面向对象的协议。每个CIP对象都有属性(数据)、服务(命令)、连接和行为(属性值和服务之间

    2024年01月22日
    浏览(74)
  • 欧姆龙NJ/NX系列标签方式与西门子PLC之间通讯(基于IGT-DSER)

            本案例是欧姆龙的NJ501与西门子的S7-1500的PLC之间以太网跨网段通讯,NJ501采用标签方式通讯。下图是通过IGT-DSER的参数配置软件(下载地址)配置完成的PLC数据交互地址表,包括PLC的IP地址网络端口、寄存器标签地址,以及通讯的字节数量等:         上图中总计

    2023年04月25日
    浏览(47)
  • ​Profinet转EtherNET/IP从站连接欧姆龙plc与西门子200smart通讯的配置方法​

    本案例是200smart plc与欧姆龙plc进行通讯的方法,远创智控YC-PNM-EIP网关可以读写全系列西门子 PLC 数据。一般不需要 PLC 里做特殊的设置。只需要把 PLC 的变量地址配置到网关中,网关就可以读取指定地址的数据或者写数据到指定的地址。 PLC 通过网线连接到网关,设备 PLC 和网

    2024年02月08日
    浏览(44)
  • C#上位机与三菱PLC的通信07--使用第3方通讯库读写数据

    mcprotocol 是一个基于 Node.js 的三菱 PLC MC 协议通信库,具有以下特点: 支持多种三菱 PLC MC 协议的设备,如 FX3U、Q03UDECPU、QJ71E71 等。 支持多种功能码和数据类型,如读取线圈(M)、读取寄存器(D)、写入寄存器(D)、读取扩展寄存器(D*)、读取位寄存器(X/Y)、读取字寄

    2024年02月19日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包