关键词:PLC可编程控制器 上电停止 串口通信 梯形图

摘要:PLC(可编程控制器)在工业控制中使用非常广泛,型号很多,有一部分PLC有上电停止的功能,它们为什么需要这个功能呢?孔丙火(微信公众号:孔丙火)分析了上电停止的具体用途及实现路径,对于没有启停旋钮、没有专用编程口或编程电缆、通信口即作为编程口又作为通用口、通信口同时支持主站和从站设置的PLC,上电停止功能是需要的。同时,这种设计,对于单片机的串口通信设计,具有很好的借鉴意义。

1.PLC与上电停止

PLC是可编程逻辑控制器(Programmable Logic Controller)的简称,随着技术的不断发展,PLC已不仅仅在于逻辑控制,因此后来改称为可编程控制器(Programmable Controller),但由于简称PC与个人电脑的简称一样,为了不混淆,依然用PLC来简称可编程控制器。从70 年代第一台PLC 到目前为止,出现过各种形式的PLC,厂家型号众多。你或许用过PLC,或许没用过PLC,你用的PLC或许有上电停止功能,或许没有上电停止功能,那为什么有的PLC需要上电停止功能呢。

如图1所示,这是某款PLC的上电停止功能。

图1

这是PLC编程软件菜单下的一个截图,具体用法是:点击“上电停止PLC”,然后把PLC断电,通过该款PLC指定的可以实现上电停止功能的通信口(485或232)与计算机连接,然后给PLC重新上电,此时编程界面上就会出现“PLC上电停止成功”的提示,可以看到PLC处于停止状态,且此通信口的通信参数为默认状态(数据手册上标注的上电停止后的通信参数)。

看了上面的描述,孔丙火(微信公众号:孔丙火)相信你对上电停止功能有了一个大概的了解。也许会想,搞得这么啰嗦,有什么用呢,为什么要这样设计呢。

首先,具有上电停止功能的PLC不具有启停旋钮,无法通过硬件开关控制PLC的启动和停止。至于有的PLC为什么不设计启停旋钮,可能是为了节省电路板空间、节省硬件成本,或者其他什么原因,孔丙火(微信公众号:孔丙火)不得而知。没有启停旋钮,要想停止PLC的运行,只能通过编程软件进行控制,在计算机与PLC正常通信的情况下,可以通过编程软件控制PLC的运行与停止。但PLC在上电伊始是默认进入运行状态的,要想要PLC上电就进入停止状态,就需要上电停止功能,这是上电停止功能的第一个用途。

其次,具有上电停止功能的PLC一般不具有专用的编程接口或者专用的编程电缆,任何一个通信口都可以下载程序,同时,任何一个通信口也都可以用作通用的通信口,用户程序可以操作使用。一旦用户把通信口的通信参数改乱了,或者记不清通信参数了,那么计算机上的编程软件就无法与PLC通信了,PLC岂不是变砖了?这个时候,就需要上电停止功能,上电停止成功后,具有上电停止功能的通信口的参数变为默认参数,此时编程软件可以与PLC通信,查看当前的通信参数或者修改通信参数,以恢复PLC的正常功能。

还有一种情况,这种PLC的通信口一般都支持Modbus协议,且均支持设置为主站或从站,当所有的通信口都被设置为了主站,主站口会主动向外发数据,此时,程序下载无法完成,因此,在下载程序的时候,需要计算机上的编程软件主动发起数据通信,此时的PLC应当相当于从站。这个时候同样需要上电停止功能来解决,PLC上电伊始便停止运行了,通信口不会再向外发数据,程序下载就可以正常进行了。这是上电停止功能的第二个用途。

总结:孔丙火(微信公众号:孔丙火)认为,对于没有启停旋钮、没有专用编程口或编程电缆、通信口即作为编程口又作为通用口、通信口同时支持主站和从站设置的PLC,上电停止功能是需要的,也是必须的,否则PLC有可能会变砖。

2.实现路径分析

孔丙火(微信公众号:孔丙火)做过一些单片机的设计项目,现在很多小型的PLC都是用单片机实现,这里就来分析一下PLC的上电停止功能的实现路径。PLC的程序代码大体可以分为两个部分:固件和用户程序,固件是PLC在出厂的时候固化好的,外设、用户程序的解析等功能都在这个部分,用户程序就是用户通过编程软件编写的部分,我们通常写的梯形图程序就属于这个部分。PLC上电开始运行,便进入固件部分,然后根据一定的条件,再进入用户程序的运行。

大体猜测一下上电停止的实现方法。PLC上电,固件程序开始运行,具有上电停止功能的通信口按照默认参数设置,在这个过程中,检测具有上电停止功能的通信口是否接收到上电停止指令,如果接收到了上电停止指令,则不进入用户程序(即PLC处于停止状态),这个时候,编程软件可以建立与PLC的通信,可以查看通信口参数,可以修改通信口参数,可以下载或上传程序。如果在一定的时间内(较短时间,例如500ms)没有收到上电停止指令,则进入用户程序,PLC正常运行。

有了上面的分析,也就知道了,为什么在执行上电停止的时候,一定要先打开编程软件上的上电停止功能,正确连接PLC的通信口,然后才能给PLC上电,这样才能确保PLC在刚开始运行在固件程序阶段的时候能接收到上电停止指令。

3.单片机设计借鉴

在涉及到Modbus串口通信的单片机项目中,孔丙火(微信公众号:孔丙火)认为,这种上电停止的设计方法是具有借鉴意义的。一般情况下,串口的通信参数是需要开放修改的,修改的方法大致可以分为两种。第一种是通过硬件的方法,在电路上设计一些拨码开关或编码开关,以实现通信参数的设定。第二种方法是通过软件设计,将通信参数存在flash或EEPROOM中,计算机或HMI等设备通过串口通信来改变参数。

对于软件设计的方法,存在两个问题:第一,用户把串口参数改乱或记不清通信参数的情况下,只用重新下载单片机程序,清空flash或EEPROOM,很不方便;第二,如果串口作为Modbus主站口,单片机运行过程中,无法通过串口修改通信参数。

类似PLC上电停止功能的设计方法可以很多解决上面两个问题。在我的FreeModbus从站设计的系列文章中,后续会有关于上电停止功能的分享,实现一个简单的上电停止功能,以便可以方便地修改通信参数。欢迎持续关注。

文章在公众号(孔丙火)同步推出,欢迎查看更多系列文章。

单片机、ARM、现场总线、PLC、嵌入式软硬件的设计经验分享,秉承“点点滴滴皆智慧”的理念,以实际项目为单元阐述知识点,一起分享,共同交流。

为什么有的PLC需要上电停止功能,能防止PLC变砖,可编程控制器 上电停止 串口通信 梯形图相关推荐

  1. MCU 上电复位功能的使用注意点

    学习和使用单片机的伙伴,对于单片机的复位(Reset)功能,应该是了然于胸了,因为这个功能是学习单片机最先需要了解的功能.那么,单片机复位的本质是什么呢? " Reset " 这个 ...

  2. 子程序与中断程序的异同_【干货】plc怎样理解中断功能,其作用是什么?

    plc怎样理解中断功能: 在理解plc中断时,你首先要清楚plc的运算周期或者说是扫描周期.我们有必要说下plc顺控循环执行的流程,这是理解中断的前提,必须要掌握. 分为三部分:输入处理.程序处理.输 ...

  3. js实现自动阅读及停止功能。

    本文介绍实现电子书自动阅读的功能,原理就是让滚动条一直下滚即可,停止时停止动画,switKey作为开关,防止多次点击自动阅读创建多个定时器. html部分: <!--自动阅读按钮--> & ...

  4. PLC数据采集网关的作用是什么,PLC数据采集网关的功能都有哪些

    PLC数据采集网关远程诊断维护各地PLC,实现PLC的程序下载,编程,维护等功能,解决分布各地的多台工业PLC设备设施现场维护.监控维修等问题,进一步的节约成本以及更高效的对远程设施进行实时控制. P ...

  5. s7 200 smart编程软件是款功能强大的plc编程工具

    s7 200 smart编程软件是款功能强大的plc编程工具;它是由大家都比较熟悉的西门子官方进行研发推出,还对新款的编程软件进行支持,包括了CP243-1等;软件还可进行远程的编程.数据传输的功能也 ...

  6. FlexSPI 的 SCLK 停止功能 手册1693页

    27.5.12  SCLK 停止功能 当编程数据没有准备好用于编程命令序列,或者(内部FIFO中)没有空间接收数据,无法读取命令序列时,FlexSPI将停止SCLK输出. 可能有某些设备不支持SCLK ...

  7. 潇洒郎: python threading 实现线程暂停、恢复、停止功能

    结果: 线程暂停.恢复.停止见注释 obj-T1-0obj-T2-0main 0obj-T1-1obj-T2-1obj-T2-2main 1obj-T1-2obj-T1-3obj-T2-3main 2 ...

  8. fx系列微型可编程控制器 通信_三菱PLC各系列PLC通讯技术综述,绝对全面!

    一.N:N通信网络 N:N通信网络,最多可以连接8台FX系列可编程程控制器之间的通信,通过485通信连接 最大延长距离500m(混有485BD情况下最大延长距离50m),半双工双向通信,字格式是固定的 ...

  9. 计算机与plc链接通信协议,实现上位计算机与PLC的上位链接系统的通信设计

    1.引 言 PLC是专为工业控制而设计的专用计算机,其体积小,具有高可靠性和很强的抗干扰能力,因而在工业控制中得到了广泛的使用. 随着工业的自动化程度的提高,对PLC的应用提出了更高的要求:更快的处理 ...

  10. 显示控制器注释_欧姆龙可编程控制器CS1D-CPU产品型号说明及功能介绍

    欧姆龙可编程控制器CS1D-CPU用CPU单元 CPU单元(用于双CPU系统) 欧姆龙可编程控制器CS1D-CPU用CPU单元 特点 可以轻松引入.使用高可靠性系统 成双配备CPU单元轻松易行 CPU ...

最新文章

  1. 独家 | 成功开发者必备的5项软技能
  2. Extensible Messaging and Presence Protocol (XMPP): Core
  3. java51游戏_Java作业实践(一)魔板游戏
  4. as无效 mysql_MySQL 全文索引实现简单版搜索引擎
  5. Linux / 惊群效应
  6. commons-lang(time应用)
  7. 第九篇:Spring Boot整合Spring Data JPA_入门试炼01
  8. python中最难的是什么_Python 最难的问题你猜是什么?
  9. 深度学习 --- 优化入门五(Batch Normalization(批量归一化)二)
  10. Linux内核学习书籍
  11. windows2008R2新增磁盘处于脱机状态及介质写入受保护解决办法
  12. 【Redis】Redis缓存穿透和雪崩
  13. 在线剪切板,一款高效方便记录剪切板内容的在线工具
  14. 电脑连不上网,WiFi没有显示出来
  15. VS2019读取文件中文乱码问题解决
  16. 运营商大数据:未来移动联通电信三大运营商数据会同步共享吗?
  17. ElasticSearch基础:从倒排索引说起,快速认知ES
  18. 新手必学的20个人像摄影构图法
  19. 如何调整计算机屏幕显示的锐度,win10系统调节显示器锐度的解决步骤
  20. 电视盒子安装CUPS共享惠普1020为无线网络打印机【新版】

热门文章

  1. 计算机组成原理乘法设计,资料计算机组成原理课设 定点补码一位乘法器的设计.doc...
  2. MacOS Ventura 13.0 Beta6 (22A5331f) 带 OC 0.8.4 三分区原版黑苹果镜像
  3. 开关电源入门1-基本原理
  4. 精通开关电源设计(二)
  5. python when库_python 库收集
  6. 《shell脚本学习指南》学习笔记之入门 一
  7. kaggle数据集下载
  8. 【快代理】开放代理使用教程
  9. 二维联合分布(X,Y)求(U,V)
  10. 微信交友unicloud云开发小程序