上位机能不能替代PLC?

2023/10/28 2:48:50 人评论 次浏览 分类:PLC应用  文章地址:http://yunrun.com.cn/tech/5139.html

上位机能不能替代PLC?昌晖仪表的看法:上位机是不可能完全替代PLC的。上位机并不是为了替代PLC而诞生的,PLC作为一种典型的下位机,与上位机之间应该是互相协作的关系。

但是如果逻辑不是很复杂,又确实不想使用PLC,也可以使用上位机来实现一定的逻辑控制,现在很多运动控制视觉项目就是这么来实现的。

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

如果不采用PLC,仅仅通过上位机,我们通过一个IO采集卡,然后将PLC的逻辑控制改成上位机代码来实现,是不是可以实现一些简单的逻辑控制?


既然可行,给大家做一个简单的测试,基于IO采集卡实现起保停控制。


实现原理

PLC的实现原理,就是通过不断地从上而下,从左而右来扫描PLC程序,然后对接一些IO输入输出,通过上位机来实现的话,实现原理可以类似,我们可以通过单独的一个线程来实现扫描,而PLC里的每个指令,我们上位机都可以通过构造对应的类来实现。从某种意义上来说,为什么PLC实现逻辑控制比较简单,其实是因为厂家已经帮我们封装好了很多开箱即用的指令,我们直接调用即可。
如果想使用上位机来替代PLC,PLC的IO可以采用IO采集卡,PLC指令可以自己封装类,PLC中断,可以通过事件来实现,通信部分上位机自然可以实现。

IO采集卡

这里采用的是正运动的一个IO采集卡,型号是ECI0032,相关参数如下所示:
◆ECI0032板上自带16个通用输入口,16个通用输出口(带过流保护)。
◆ECI0032带1 个 RS232 串口,1个以太网接口。
◆ECI0032带一个CAN总线接口,支持通过ZCAN协议来连接扩展模块和控制器。





实现过程

基本的接线和配置,本文就不详细阐述了。将板卡的IP地址改为192.168.2.33。这里接了两个按钮和一个指示灯,分别表示启动、停止和状态显示。



界面设计如下所示:



当连接上IO卡之后,可以通过按钮进行本地控制,也可以通过上位机进行远程控制。


核心代码:

private void ProcessControl()
{
     while (!cts.IsCancellationRequested)
     {
           //检测到开始按钮
           if (startEdge.CheckEdgeSingal(motion.GetInput(1)))
            {
                motion.SetOutput(0, true);
            }

            //检测到停止按钮
            if (stopEdge.CheckEdgeSingal(motion.GetInput(0)))
            {
                motion.SetOutput(0, false);
            }
      }
 }
这个写法有点类似于SCL的逻辑。

共有访客发表了评论 网友评论

  客户姓名:
邮箱或QQ:
验证码: 看不清楚?