原标题:一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂!

你真的了解PLC吗?你知道PLC与计算机的本质区别吗?我来简单解释一下吧。

1、PLC可以工作在极其恶劣的电磁环境中

如果我们把计算机直接放到PLC工作的环境中,无需太久,这些计算机将死机甚至烧毁。

在ABB的早期工程中,我们就是把工业控制计算机直接放在变电站开关柜中,用来实施测控和数据处理。然而,用不了多久,电源故障和硬盘故障,还有输入输出接口的故障就接踵而来。直到我们用PLC替换下这些工控机,事情才算完。

这叫做抵御电磁骚扰EMC的能力,PLC可达三级甚至四级,而计算机能达到二级就算很不错了。

抵御EMC电磁骚扰,会有许多措施。例如隔离技术、接地技术等等都是。

2、PLC的程序是一行行顺序执行的,不会陷入死循环

我们在编写计算机程序时,经常会遇见循环。如果一个循环子程序设计不恰当,或者条件引起了程序返回,有可能进入到死循环中,系统当然就死机了。

然而,PLC的程序是一条接一条顺序执行的,只有到了程序末尾才会回头。在程序中任何部位,若条件满足,可以实现跳转,但程序还是一条接一条顺序执行。

如此一来,PLC几乎不会死机。这也是PLC区别于普通计算机的根本特性。

因此,我们会发现PLC的可靠性极高,这是普通计算机完全不能比拟的。

3、冗余配置

所谓冗余配置,就是在控制过程中存在主机和从机,它们依靠握手线关联,并共享资源和信息。

如果是计算机,当主机出现问题时,切换到从机的时间较长。但对于PLC,我们可以在机架上安排2套CPU作为主从控制,它们之间的转换仅几个时钟周期即可完成。

例如我们的控制对象是汽轮机,它的转子在高速旋转。我们不妨假定转子的转速就是工频周期,也即每分钟3000转。如果我们对汽轮机实施DCS监控,在现场层面我们只能选用带冗余配套的PLC,绝不可能使用计算机。一旦PLC的主机发生故障,它立刻就转入从机控制,对于受控对象来说几乎感觉不到,但计算机就未必可以实现类似功能了。

事实上,带冗余配套的PLC系统就属于规模较大的PLC了。

4、PLC的程序特点

PLC的程序规模都不大,一般才几千字节,能上万字节就算很大的程序了。

PLC有许多输入输出接口,以及各种类型的变量,这些都需要专门设置地址,以便在程序中使用。

我们看下图,此图是用PLC国际通用标准IEC61131-3模块化编程语言写成的:

图1:某地铁配电控制系统PLC的输入接口参数定义程序和延迟判误程序

在图1中,我们在左侧看到了许多输入参量,它们的末尾都有_s的标识,这些就是开关量输入参数,它们不但有地址,还有名称。这是必须的,否则程序无法辨识和使用它们。

我们由图1的程序看到,这种编程方法比所谓的C语言方便得多。事实上,每一个功能块就相当于一段C语言。例如TON模块,它是延迟模块,如果用C语言,怎么也要若干语句行,但这里仅仅只是一个程序模块而已。何者更方便一看便知。

我们再看下图:

图2:PLC的16位字解析为单个开关量的程序段

图2中,程序开头的AND(与逻辑模块)实施程序转移。当条件满足时,AND启动子程序入口。

在图2中,我们看到了UNPACK16模块,它的任务是把一个16位的字解析为16个开关量,供下一步程序使用。

我们很容易想到,这个UNPACK16模块若用C语言来写,又会有何种形式?何者更方便?

我们看下图:

图3:数据交换的RS485接口定义和MODBUS通信管理

图3是PLC对系统中各种数据交换的定义、数据采集和管理。图中的一个个模块就是处理MODBUS通信协议数据的,同时还实现数据采集轮巡操作。

这些模块用C语言该如何写?是不是会麻烦很多?

我们看到,PLC程序的便捷性是C语言无法比拟的。

5、PLC的工作范围

PLC的内存不大,尽管它的可靠性很高,但PLC不能用于较大的计算。我曾经设计过一个PLC程序,用于浮点数的乘法,麻烦得很,最后不得不使用模块配合查表来解决问题。

PLC的内部其实就是单片机,只不过整个PLC的单片机系统经过了严格的EMC测试,而操作系统和编程系统也进行了优化,方便我们这些编程者使用。

既然PLC只是一台单片机系统,可想而知它与计算机不在同一个技术水平上。计算机能够完成的工作,哪怕只是一篇WORD文档的写作,用PLC绝不可能完成。但PLC能够轻松实现的控制功能,用计算机虽然也能勉强实现,但效果极差,且可靠性极低,尺寸也巨大。

如此看来,PLC与计算机的工作特性不一样,适用的工作对象当然也不一样。

来源:机械工业出版社E视界返回搜狐,查看更多

责任编辑:

c语言程序和plc程序的区别,一文告诉你PLC与计算机的本质区别在哪里!小白都能看懂!...相关推荐

  1. PLC与C语言的本质区别,一文告诉你PLC与计算机的本质区别在哪里!

    你真的了解PLC吗?你知道PLC与计算机的本质区别吗?我来简单解释一下吧. 第一:PLC可以工作在极其恶劣的电磁环境中 如果我们把计算机直接放到PLC工作的环境中,无需太久,这些计算机将死机甚至烧毁. ...

  2. 小白都能看懂的C语言入门教程

    文章目录 C语言入门教程 1. 第一个C语言程序HelloWorld 2. C语言的数据类型 3. 常量变量的使用 4. 自定义标识符#define 5. 枚举的使用 6. 字符串和转义字符 7. 判 ...

  3. 小白都能看懂的go语言包管理工具DEP详解

    简介 众所周知GO语言包管理工具百花齐放,前有godep.glide.govendor,后有dep. 今天我们来了解一下"dep",看看它是怎样实现包管理的. dep安装 二进制文 ...

  4. c语言写贪吃蛇什么水平_学了一些C语言,也不知道自己学到什么程度,自己想写个贪吃蛇但是写不出来,想看懂下面这个程序,求解释...

    已结贴√ 问题点数:20 回复次数:3 学了一些C语言,也不知道自己学到什么程度,自己想写个贪吃蛇但是写不出来,想看懂下面这个程序,求解释 #include//基本库 #include//系统库 #i ...

  5. 一文告诉你 Java RMI 和 RPC 的区别

    转载自  一文告诉你 Java RMI 和 RPC 的区别 RPC 远程过程调用 RPC(Remote Procedure Call Protocol)远程过程调用协议,通过网络从远程计算机上请求调用 ...

  6. rpgmaker是c语言编程吗,一起学rpgmaker脚本(1)【程序猿都能看懂的RGSS入门'`,、('∀`) '`,、】...

    严重提醒: 1.本入门以娱乐为本,本着教书误人的目的来讲解怎么艹rpgmaker的脚本. 2.教学主(简称"教主")射猎二次元领域极广,各类大坑小坑留坑无数,所以不排除本入门一次完 ...

  7. 云原生和云计算的区别,普通人都能看懂!

    云原生和云计算的区别是什么?小编从非技术的角度来给大家整理一下,普通人都能看得懂! 什么是云计算? 百度解释:云计算是分布式计算的一种,指的是通过网络"云"将巨大的数据计算处理程序 ...

  8. python语言下,B站(bilibili)热门排行榜视频封面爬取程序V1.0 小白也能看懂,八十岁没牙老太太看完拿舌头都能爬封面!!

    由于工作需要,我需要对B站(www.bilibili.com,以下简称B站)的热门排行榜视频的封面经行截取,就是排行榜(www.bilibili.com/v/popular/rank/all)中的这些 ...

  9. 怎么看懂c语言程序,求讲解一下这个程序,我看了1个小时都没有看懂,

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 # include #define N 9 void fun(int a[], int n) { int i,j, max, min, px, pn, t ...

最新文章

  1. 2022-2028年中国瓷砖粘结剂行业市场研究及前瞻分析报告
  2. 如何使用Sublime Text 2重新格式化HTML代码?
  3. build muduo网络库undefined reference to问题
  4. python 多线程入门试验
  5. 世界坐标系,摄像机坐标系、图像坐标系关系汇总
  6. datatable DataRow
  7. java 指代对象_java-This的理解
  8. springboot+flowable第三节(动态设置审批人)
  9. jzoj2941. 贿赂
  10. POCO C++库学习和分析 -- 线程 (二)
  11. mysql分别统计男性员工和女性员工人数_实验四 数据查询3-group by等
  12. TensorFlow2 学习——RNN生成古诗词
  13. 破解tomcat管理员密码
  14. [Objective-C] 010_Foundation框架之NSSet与NSMutableSet
  15. postgresql 表分区
  16. 今日参与会议后的感悟
  17. 关于程序集成线上支付模块
  18. SQL SERVER 2000 企业管理器免安装方法
  19. 制作拼多多app网页css,5+App下Mui框架开发仿拼多多App
  20. USB接口那么多!!你都认识吗??知道他们的区别吗??

热门文章

  1. 龙蜥社区理事长展望操作系统 2022:加速驶向快车道,云、XPU和开源成“催化剂”...
  2. Deep Learning Trends @ ICLR 2016:深度学习趋势@ICLR2016(译)
  3. Android ContentProvider之联系人数据库及操作
  4. wince挂起和唤醒
  5. ad策略下发_windows 2008 server 域环境通过组策略下发计划任务
  6. php 接入erp系统设计,erp系统对接用友T+系统(PHP版本)
  7. 【网络教程】解决Windows11使用Alt+Tab同软件显示多个标签的问题(Edge浏览器)
  8. Java运算符-逻辑运算符
  9. 云师大计算机调剂,云南师范大学2020考研调剂信息(二)
  10. 【bzoj4887】[Tjoi2017]可乐 矩阵乘法