上位机能不能替代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 ...
随机推荐
- att&ck学习笔记1
一.环境搭建 1.1环境搭建测试 最近想要开始学习内网渗透,搜集了一些教程,准备先实验一个vulnstack靶机,熟悉一下内网渗透操作再学习基础知识. 靶场下载地址:http://vulnstack. ...
- spring基础配置原则
spring框架本身有四大原则:1.使用pojo进行轻量级和最小侵入式开发2.通过依赖注入和基于接口编程实现松耦合3.通过AOP和默认习惯进行声明式编程4.使用AOP和模板减少模式化代码spring ...
- @RequestParam @RequestBody @PathVariable 等参数绑定注解详解()
转载自:http://blog.csdn.net/walkerjong/article/details/7946109 学习了下,对@RequestBody,@SessionAttributes,@M ...
- Mysql 通用分页
第一步,建立数据库: create table student( id int primary key auto_increment, code varchar(50), name varchar(5 ...
- Linux命令之ncdu
简介 Ncdu - NCurses Disk Usage Ncdu 是一个带有 ncurses 接口的磁盘使用分析器. 它旨在在您没有完整图形设置可用的远程服务器上查找空间占用,但即使在常规桌面系统上 ...
- 使用nginx 解决开发过程中的跨域问题
遇到的问题 在开发vue 前端程序时,我们会创建多个项目,比如用户管理为一个应用,系统管理为一个应用,这样多个应用势必需要开多个端口,这样问题就来了,我们在登录后会生成一个token,这个token我 ...
- Python版本与Jupyter记录
最近使用Python的时候,遇到一个版本问题.我本地安装的Python版本是3.8.0,在使用match...case...语法时,提示如下报错: 查询之后,才知晓3.8.0还没有match语法,ma ...
- Vue中使用ref属性获取元素||组件标签
元素绑定属性 //绑定ref属性 <table ref="refTable"></table> 获取元素 //在方法内 this.$refs.refTabl ...
- vue组件传参props
传参格式,将需要传的参数以属性方式写在组件标签上 //组件标签 <zu a='参数一' b='参数b'></zu> 接收格式,在组件内 //props属性接收参数 props: ...
- CVE-2023-3609 Linux 内核 UAF 漏洞分析与漏洞利用
漏洞分析 通过分析补丁和漏洞描述可以知道漏洞是位于 u32_set_parms 函数里面,代码如下: static int u32_set_parms(struct net *net, struct ...