上位机能不能替代PLC呢?
一、前言
大家好!我是付工。
之前有个学员问了这样的一个问题:
学会了上位机,是不是就可以不用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呢?的更多相关文章
- c#上位机与三菱PLC(FX3U)串口通讯
项目中会经常用到上位机与PLC之间的串口通信,本文介绍一下C#如何编写上位机代码 与三菱FX3U进行通讯 1. 第一种方法是自己写代码实现,主要代码如下: //对PLC的Y7进行置1 byte[] Y ...
- s7nodave用于上位机连接西门子PLC,开源项目epics
s7nodave 可以看作是Prodave的开源替代者,在PLC侧,不需要编程 This device support does not require any special programming ...
- 基于Socket访问西门子PLC系列教程(二)
本文是西门子开放式TCP通信的第2篇,上一篇我们讲了使用西门子1200PLC作为TCP服务器的程序编写,可以点击下方链接阅读:[公众号dotNet工控上位机:thinger_swj] 基于Socket ...
- 【新阁教育】穷学上位机系列——搭建STEP7仿真环境
经常有学员问我,学习上位机要不要买PLC硬件? 我一般的回答是:富则自行购买,穷则搭建仿真. PLC硬件,对于学习上位机来说,是锦上添花的事,经济条件允许,有则更好,条件不允许,我们也可以通过搭建仿真 ...
- 西门子PLC开发笔记(一):PLC介绍,西门子S1200系列接线、编程、下载和仿真
前言 西门西PLC.台达触摸屏.法兰克机床等等多年以前玩得比较多,改造机床.维修机床.给机床编程等等,没事还能扯个零件啥的,之前也没总结过,有时间就重新整理下. 本章后面以西门1200实物为例, ...
- PC+PLC通过Modbus协议构建工控系统
一. 概述 工业设备采用HMI+PLC控制是比较常见的方案,随着工业自动化的要求越来越高,现在很多设备都要求接入企业MES系统,MES系统一般为WEB系统,接口形式大部分为HTTP协议,这种传统方案和 ...
- 欧姆龙PLC HostLink协议整理
欧姆龙PLC HostLink协议整理 1.常用的存储器功能区 CIO: 输入继电器 272 点(17 CH) 0.00-16.15 输出继电器 272 点(17 CH) 100.00-116.1 ...
- 欧姆龙plc通讯协议格式
欧姆龙CPM1A型plc与上位计算机通信的顺序是上位机先发出命令信息给PLC,PLC返回响应信息给上位 机.每次通信发送/接受的一组数据称为一"帧".帧由少于131个字符的数据构成 ...
- [芯片] 3、接口技术·实验三·可编程并行接口8255A
目录 一.实验目的和要求 二.实验原理与背景 2-1.8255A简介 2-2.8255A编程 三.实验具体的内容 3-1.8255方式0实验1 3-2.8255方式0实验2 3-3.8255方式1输出 ...
- 我的Modbus Slave/Client开发历程(Rtu/AscII/Tcp)
我的Modbus Slave/Client开发历程(Rtu/AscII/Tcp) 分类: [自动化]2007-07-19 10:04 34038人阅读 评论(38) 收藏 举报 vb嵌入式dostcp ...
随机推荐
- Promise 简单实例一枚
<script> function t(){ return new Promise((resolve, reject)=>{ setTimeout(()=>{ resolve( ...
- Verilog代码规范
历史修改信息 版本 更改描述 更改人 批准人 修订日期/生效日期 A01 发布首版 ldy 一.目的 作为我司verilog开发过程中的输入文件,用于统一FPGA开发人员的代码风格.从而在满足功能和性 ...
- SSH通过本地开端口打远程隧道
ssh -R 你想让别人连得端口:带外IP:22 root@内网跳板机 -p内网跳板机端口 例如: ssh -R 8888:172.22.200.1:22 root@10.11.11.11 -p202 ...
- 开源 - Ideal库 - 特殊时间扩展方法(三)
书接上回,我们继续来分享一些关于特殊时间获取的常用扩展方法. 01.获取当天的开始时间 当天的开始时间指00:00:00时刻,因此只需要获取DateTime的Date属性只获取时间即可,具体代码如下: ...
- 国密SSL证书,为政务数据安全保驾护航
随着数字化转型的加速,政务信息化建设已成为提升政府服务效率和质量的关键.近期,国家相关部门发布了<互联网政务应用安全管理规定>,为政务应用的安全管理提供了明确的规范和要求.该规定自2024 ...
- 使用Apache的ab工具进行压力测试
Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境,ab工具位于D:\wamp\bin\apache\Apache2.2.21\bin)非常容易使用,ab可以直接在Web服务器本地发起 ...
- 什么是静态(static)?什么是静态方法,静态变量,静态块和静态类?
本文由 ImportNew - 唐小娟 翻译自 Journaldev.如需转载本文,请先参见文章末尾处的转载要求. static是Java中的一个关键字,我们不能声明普通外层类或者包为静态的.stat ...
- Nuxt.js 应用中的 render:html 事件钩子
title: Nuxt.js 应用中的 render:html 事件钩子 date: 2024/11/30 updated: 2024/11/30 author: cmdragon excerpt: ...
- 优化简历的开源工具「GitHub 热点速览」
有读者留言问我是不是"跑路"了,上周没发「GitHub 热点速览」是因为在忙于编写<HelloGitHub 月刊>.这不,我带着诚意满满的开源项目又回来啦!首先要分享一 ...
- Astro Zen Blog |一个优雅、极简、强大的博客
介绍 Astro Zen 博客项目 如果你想部署一个自己的静态博客,又不想到处折腾,并且是熟悉的前端技术栈,你可以尝试下:Astro Zen Blog! Astro Zen Blog 是一个使用 As ...