PLC主要适合电工以及机械相关的人群。其主要用在钢铁、石油、化工、电力、建材、机械制造等各个领域。其具有高可靠性、抗干扰能力强、易学易用、等特点。

PLC的体积一般都是比极大的,其安装固定在C45导轨,现在的PLC功能越做越强大,有以太网通讯模块、CAN通讯模块、MODBUS通讯模块,拓展节点控制模块等等。配套软件也十分的强大,稍微配置一下,即可完成设计,所以非常适合电工、机械相关的开发人员使用。
PLC内部的电路,实际上也是有单片机(或者CPU等)和辅助驱动电路组成,写入厂家的配套底层驱动软件。用户开发PLC也仅仅是对应用开发。为了更好的是适应恶劣条件,所以PLC在硬件和软件设计上都下足了很多的功夫,因此,其价格相比单片机开发来说,其费用也不低。

本次我使用STM32F103RDT6单片机来仿制三菱的FX2N型号的PLC。这款PLC比较基础的,很老的、功能比较单一(它的地位可能和AT89C51差不多),但是适合PLC入门和DIY。

原理图设计
一般在在工业上,直流电源大多采用的是24V或者12V。

电源我采用的一个二极管进行防反接,主要是这里电源电流也不高,没有必要使用MOS管。EARTH是一个简单的屏蔽地。电源经过一个共模线圈去掉共模干扰。使用一个光耦,进行电源检测。

输入24V电源,经过TPS5430芯片转化为5V,最后用过LDO输出3.3V供单片机相关的电路使用。

复位电路使用的是外部专用的复位芯片MAX809,和RC复位电路相比,其可靠性更好。在快速开关机时,由于电容上次放电并没有释放完毕,导致单片机启动异常,而使用复位芯片则能够很好的解决这一问题。

这个就是单片机管脚定义电路。

LED指示灯电路,EEPROM存储电路,以及RS232调试电路,这个RS232电路接口主要是用于与三菱的PLC开发软件相连的。

ADC采用的是单片机自带的ADC,电路设计使用的是LM358运放,将外部输入电压按照一定的倍数进行缩放,以便单片机进行采集。在我的这个电路板上有三路这个样的电路。

输入电路采用了PC817C进行了光耦隔离。4.7K电阻进行了限流,注意光耦的发光二极管的电流一般采用10mA即可,具体可以看手册。1N5819W的二极管主要是起到保护作用。当输入信号接反了的之后则通过这个二极管进行释放。避免损坏光耦,这个光耦的反向击穿电压只有6V。

输出的话,采用的是达林顿管+继电器的方式。由于达林顿管内部集成了方向二极管,所以,这里就可以不用担心继电器的反向感应电动势的问题。
最后,大致的看下整个电路的逻辑关系。

PCB设计
经过一番折腾,最后定稿的PCB设计如下图所示。

然后,送去PCB板厂打样,采购相关的电子元件,准备进行手工焊接。又是一番折腾,终于焊接完成,如下图所示。

这里给大家一个经验,焊接完成之后,建议用热风枪将每个元件在吹一遍,该补锡的地方进行补锡,有毛刺的地方,可以加点助焊剂等,像我这种有强迫症的,我还要将贴片电阻电容顺便摆一下,让其位置对齐。最后在用洗板水洗一下。

软件编程
想要PLC工作,还必不可少需要一个底层软件,不然这和单片机开发没什么区别,不能支持PLC的开发软件和方式。
所以这里需要对PLC的指令进行一个转换和翻译。
这里也没啥好说的,其实网上针对FX2N的PLC也有很多的代码,稍微移植和修改下就可以了。
将管脚对应到自己设计的管脚即可。

程序验证
将程序下载到单片机之后,如何验证程序的正确性呢?
可以使用PLC的编程软件。三菱这款PLC的编程软件支持有两款,GX Developer和GX Works软件,在三菱官网可以下载。
这里我使用的是GX Works2。
启动软件,选择和合适的型号,建立对应的串口连接:

最后,点击“通讯测试”,弹出如下窗口。

可以看到,这个软件已经识别到我们自制的PLC了。
关于PLC的使用,一般都是用的是梯形图编程。这个比较简单和直观,下图仅为一个示例图片。

这里大家可以先有个大致的概念,关于PLC的具体使用,等待下期吧。

stm32硬件设计手册_基于STM32自制三菱PLC之软硬件设计相关推荐

  1. stm32捕获占空比_基于STM32超声波避障小车

    不管是对于初学者还是对于一个玩过单片机的电子爱好者来说,或多或少都接触到过小车项目,今天给大家介绍的的一个项目基于STM32超声波避障小车.这也是我曾经的一个课设,在此开源分享给大家,全文5000多字 ...

  2. stm32车牌识别_基于STM32单片机的车牌识别

    系统介绍    使用STM32F103RCT6作为主控,摄像头使用OV7670(带FIFO).STM32进行了16倍频.识别过程分别为:图像采集,二值化,识别车牌区域,字符分割,字符匹配. 识别过程分 ...

  3. stm32采集脉冲信号_基于STM32+FPGA的数据采集系统的设计与实现

    引言 由于火控系统工作环境特殊,所需采集信号复杂多样,传统的以微控制器或PC为主的采集系统往往难以胜任.针对上述问题,提出了一种基于STM32+FPGA的数据采集系统的设计方案,该方案不仅能够完成对多 ...

  4. stm32万年历流程图_基于STM32的电子万年历系统设计

    龙源期刊网 http://www.qikan.com.cn 基于 STM32 的电子万年历系统设计 作者:刘磊 来源:<科技资讯> 2015 年第 01 期 摘 要:电子万年历是集时间.日 ...

  5. stm32超声波扫频_基于STM32的脉冲式及扫频式超声波除垢信号源设计

    基于 STM32 的脉冲式及扫频式超声波除垢信号源设计 李连通 , 张伟光 *, 李金博 [摘 要] [摘 要] 介绍了一种基于 STM32 主控芯片产生两种不同信号源的实 现 ] 脉冲信号源可以产生 ...

  6. stm32超声波扫频_基于STM32的超声波发生器扫频信号源的实现

    基于 STM32 的超声波发生器扫频信号源的实现 张加岭,李善波,侯颖钊,赵 杰 [摘 要] 摘要:扫频信号源采用以 STM32F103 单片机为核心,实现高精度锯 齿波扫频.由于超声波电源换能器串联 ...

  7. stm32 交换机芯片_基于STM32的全链路语音交互 - stm32/stm8 - 电子工程世界

    硬件平台:STM32F746G-DISC开发板 编译软件:KEIL 5.31 操作系统:RTX5 TCP/IP协议栈:Cyclone-TCP 语音交互平台:思必驰DUI开放平台 这里说一下使用的TCP ...

  8. stm32的语音识别_基于STM32的嵌入式语音识别模块设计实现

    介绍了一种以ARM为核心的嵌入式语音识别模块的设计与实现.模块的核心处理单元选用ST公司的基于ARM Cortex-M3内核的32位处理器STM32F103C8T6.本模块以对话管理单元为中心,通过以 ...

  9. stm32的语音识别_基于stm32循迹避障语音控制金属探测蓝牙小车设计(原理图+pcb+源码+参考文档)...

    功能描述及设计原理: 小车具有检测里程功能,在金属探测模式,槽型光耦会检测小车车轮的圈数,以此来计算小车行走的里程,并可以通过OLED屏幕显示出来.还可以显示小车的工作模式以及小车距离前方障碍物的距离 ...

最新文章

  1. Yii2 操作不同的数据库
  2. PL/SQL Developer中,存储过程无法调试的问题解决办法
  3. abstract类中不可以有private的成员_别再说你不懂java面向对象了,阿里P7大佬一次性给你讲的明明白白
  4. 2.关于QT中的Dialog(模态窗口),文件选择器,颜色选择器,字体选择器,消息提示窗口
  5. Cisco packet tracer6.0下的网络工程实训
  6. 使用UTL_FILE在oracle中读写文本数据
  7. Android开发学习笔记-自定义组合控件
  8. matlab 三维 作图 坐标轴_MATLAB学习——MATLAB中的三维绘图指令
  9. 使用oracle客户端与PLSQL连接ORACLE数据库软件安装过程
  10. android 检测sqlite数据表中字段(列)是否存在
  11. 贝塔智能挪车V2.3.4汽车微信小程序 多开版源码
  12. Hadoop集群搭建(六):hadoop配置namenode服务
  13. HTML跳转到QQ聊天界面
  14. 微信音频通话数据保存服务器,微信语音通话怎么录MP3音频文件
  15. 数据处理奇技巧——hive篇
  16. 计算机论文获奖证书,教改论文获奖证书-中国教育学会获奖证书评高级有用吗?...
  17. python字符映射表和字符替换
  18. 半加器、全加器及其应用
  19. 重温数据结构:理解 B 树、B+ 树特点及使用场景
  20. 2019杭州(准)独角兽企业

热门文章

  1. 1.9 程序示例--局部加权线性回归-机器学习笔记-斯坦福吴恩达教授
  2. 1.3 程序示例--梯度下降-机器学习笔记-斯坦福吴恩达教授
  3. excel 多项式拟合数据
  4. 【S操作】冰箱正常运行监控系统需求整理
  5. Python whl文件制作简介
  6. 【CUDA7.5】MATLAB中配置Win7+Matlab R2015b+CUDA7.5+vs2013配置方法
  7. 11.Verilog中如何避免Latch
  8. mysql 面试知识点笔记(二)查询优化及索引越多越好吗?
  9. c语言解决函数变参数问题 va_list
  10. PHP中类和文件的代码注释规范