zoukankan      html  css  js  c++  java
  • 为什么有的PLC需要上电停止功能,能防止PLC变砖(可编程控制器 串口通信)

    关键词: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、嵌入式软硬件的设计经验分享,秉承“点点滴滴皆智慧”的理念,以实际项目为单元阐述知识点,一起分享,共同交流。

  • 相关阅读:
    canvas之碎碎念
    canvas之动态时钟
    属性小问题
    readonly and disabled
    table
    地图热区
    子块元素在父块元素中居中
    Ajax与JS
    前端测试
    html5/css3
  • 原文地址:https://www.cnblogs.com/kongbh/p/14785531.html
Copyright © 2011-2022 走看看