一、前言

大家好!我是付工。

之前有个学员问了这样的一个问题:

学会了上位机,是不是就可以不用PLC了呢?

今天跟大家分享一下上位机能不能代替PLC?

二、网络架构

首先我们看下这张网络架构图。

从图中可以看到:

上位机属于过程监控层,PLC属于现场控制层。

PLC作为下位机,上位机与下位机进行通信,实现整个控制系统的运作。

因此正常情况下,上位机不是用来替代PLC的。

但是,有些情况下,尤其是在一些运动控制机器视觉的项目场景中,整个项目中并没有使用PLC,那么这个时候,我们能不能通过上位机来实现一些逻辑控制呢

三、实现原理

PLC全称可编程逻辑控制器,主要由输入输出(IO)+ 逻辑控制(程序)+ 外部接口(通信)三部分组成。

上位机本身可以实现一定的逻辑控制和外部通信功能,输入输出我们需采用IO采集卡,大部分运动控制卡也自带IO,然后在上位机编写相应的代码来实现逻辑控制即可。

PLC的实现原理,是通过不断地从上而下,从左而右来扫描PLC程序,同时对接一些IO输入输出。

通过上位机来实现的话,实现原理与之类似,我们可以通过单独的一个线程来实现扫描,而PLC里的每个指令,我们上位机都可以通过构造对应的类或方法来实现。

原理其实是相通的,之所以PLC实现逻辑控制比较容易,是因为厂家已经帮我们封装好了很多开箱即用的指令,我们直接调用即可。

所以,如果我们使用C#上位机做这种逻辑控制比较多,也可以封装一些沿信号检测、延时定时器等一些指令,比如起保停主要就是上升沿检测。

四、IO采集卡

目前市面上有很多IO采集卡,大部分IO采集卡都是通过串口ModbusRTU或者以太网ModbusTCP来实现通信,这种通信效率相对较低。

我这里采用的是正运动的IO采集卡,正运动的采集卡也支持ModbusTCP通信,而且通信效率较高,后续可以测试对比一下。

另外一点就是,如果我们使用过正运动的库,我们也可以通过官方提供的运动控制卡的库来直接对接,这样就不用自己写通信库或者使用第三方通信库了。

IO采集卡型号是ECI0032,ECI0032 是正运动技术开发的一款网络 IO 控制卡,采用优化的网络通讯协议可以实现实时的 IO 控制。
ECI0032 网络 IO 控制卡支持以太网口,RS232 通讯接口和电脑相连,通过 CAN 总线可以连接各个扩展模块,从而扩展输入输出点数。

相关参数如下所示:

ECI0032 板上自带 16 个通用输入口,16 个通用输出口(带过流保护)。

ECI0032 带 1 个 RS232 串口,1 个以太网接口。

ECI0032 带一个 CAN 总线接口,通过IO点数不够,可以通过 ZCAN 协议来连接扩展模块和控制器。

五、实现过程

基本的接线和配置,我这里就不详细阐述了,这里我将板卡的IP地址改为192.168.2.33。

通过一个按钮盒接了两个按钮和一个指示灯,分别表示启动、停止和状态显示。

采用Winform设计一个简单的界面,界面效果如下所示:

当连接上IO卡之后,开启一个多线程循环扫描,读取输入按钮的状态,当检测到启动按钮从False变为True的时候,给输出信号置位,当检测停止按钮从False变成True的时候,给输出信号复位。

核心代码如下所示:

这个写法有点类似于SCL的逻辑,整体实现效果如下:

 

最后总结一下:虽然某些场合,我们可以不使用PLC,通过上位机结合IO采集卡实现一定的逻辑控制,但是并不代表上位机就可以替代PLC。PLC作为目前工业领域使用最广泛的控制器,很多功能是上位机无法替代的。

上位机能不能替代PLC呢?的更多相关文章

  1. c#上位机与三菱PLC(FX3U)串口通讯

    项目中会经常用到上位机与PLC之间的串口通信,本文介绍一下C#如何编写上位机代码 与三菱FX3U进行通讯 1. 第一种方法是自己写代码实现,主要代码如下: //对PLC的Y7进行置1 byte[] Y ...

  2. s7nodave用于上位机连接西门子PLC,开源项目epics

    s7nodave 可以看作是Prodave的开源替代者,在PLC侧,不需要编程 This device support does not require any special programming ...

  3. 基于Socket访问西门子PLC系列教程(二)

    本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...

  4. 【新阁教育】穷学上位机系列——搭建STEP7仿真环境

    经常有学员问我,学习上位机要不要买PLC硬件? 我一般的回答是:富则自行购买,穷则搭建仿真. PLC硬件,对于学习上位机来说,是锦上添花的事,经济条件允许,有则更好,条件不允许,我们也可以通过搭建仿真 ...

  5. 西门子PLC开发笔记(一):PLC介绍,西门子S1200系列接线、编程、下载和仿真

    前言   西门西PLC.台达触摸屏.法兰克机床等等多年以前玩得比较多,改造机床.维修机床.给机床编程等等,没事还能扯个零件啥的,之前也没总结过,有时间就重新整理下.  本章后面以西门1200实物为例, ...

  6. PC+PLC通过Modbus协议构建工控系统

    一. 概述 工业设备采用HMI+PLC控制是比较常见的方案,随着工业自动化的要求越来越高,现在很多设备都要求接入企业MES系统,MES系统一般为WEB系统,接口形式大部分为HTTP协议,这种传统方案和 ...

  7. 欧姆龙PLC HostLink协议整理

    欧姆龙PLC HostLink协议整理 1.常用的存储器功能区 CIO: 输入继电器  272 点(17 CH) 0.00-16.15 输出继电器  272 点(17 CH) 100.00-116.1 ...

  8. 欧姆龙plc通讯协议格式

    欧姆龙CPM1A型plc与上位计算机通信的顺序是上位机先发出命令信息给PLC,PLC返回响应信息给上位 机.每次通信发送/接受的一组数据称为一"帧".帧由少于131个字符的数据构成 ...

  9. [芯片] 3、接口技术·实验三·可编程并行接口8255A

    目录 一.实验目的和要求 二.实验原理与背景 2-1.8255A简介 2-2.8255A编程 三.实验具体的内容 3-1.8255方式0实验1 3-2.8255方式0实验2 3-3.8255方式1输出 ...

  10. 我的Modbus Slave/Client开发历程(Rtu/AscII/Tcp)

    我的Modbus Slave/Client开发历程(Rtu/AscII/Tcp) 分类: [自动化]2007-07-19 10:04 34038人阅读 评论(38) 收藏 举报 vb嵌入式dostcp ...

随机推荐

  1. Promise 简单实例一枚

    <script> function t(){ return new Promise((resolve, reject)=>{ setTimeout(()=>{ resolve( ...

  2. Verilog代码规范

    历史修改信息 版本 更改描述 更改人 批准人 修订日期/生效日期 A01 发布首版 ldy 一.目的 作为我司verilog开发过程中的输入文件,用于统一FPGA开发人员的代码风格.从而在满足功能和性 ...

  3. SSH通过本地开端口打远程隧道

    ssh -R 你想让别人连得端口:带外IP:22 root@内网跳板机 -p内网跳板机端口 例如: ssh -R 8888:172.22.200.1:22 root@10.11.11.11 -p202 ...

  4. 开源 - Ideal库 - 特殊时间扩展方法(三)

    书接上回,我们继续来分享一些关于特殊时间获取的常用扩展方法. 01.获取当天的开始时间 当天的开始时间指00:00:00时刻,因此只需要获取DateTime的Date属性只获取时间即可,具体代码如下: ...

  5. 国密SSL证书,为政务数据安全保驾护航

    随着数字化转型的加速,政务信息化建设已成为提升政府服务效率和质量的关键.近期,国家相关部门发布了<互联网政务应用安全管理规定>,为政务应用的安全管理提供了明确的规范和要求.该规定自2024 ...

  6. 使用Apache的ab工具进行压力测试

    Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境,ab工具位于D:\wamp\bin\apache\Apache2.2.21\bin)非常容易使用,ab可以直接在Web服务器本地发起 ...

  7. 什么是静态(static)?什么是静态方法,静态变量,静态块和静态类?

    本文由 ImportNew - 唐小娟 翻译自 Journaldev.如需转载本文,请先参见文章末尾处的转载要求. static是Java中的一个关键字,我们不能声明普通外层类或者包为静态的.stat ...

  8. Nuxt.js 应用中的 render:html 事件钩子

    title: Nuxt.js 应用中的 render:html 事件钩子 date: 2024/11/30 updated: 2024/11/30 author: cmdragon excerpt: ...

  9. 优化简历的开源工具「GitHub 热点速览」

    有读者留言问我是不是"跑路"了,上周没发「GitHub 热点速览」是因为在忙于编写<HelloGitHub 月刊>.这不,我带着诚意满满的开源项目又回来啦!首先要分享一 ...

  10. Astro Zen Blog |一个优雅、极简、强大的博客

    介绍 Astro Zen 博客项目 如果你想部署一个自己的静态博客,又不想到处折腾,并且是熟悉的前端技术栈,你可以尝试下:Astro Zen Blog! Astro Zen Blog 是一个使用 As ...