直播课堂
HOME
直播课堂
正文内容
plc编程stm32 基于STM32自制三菱PLC之软硬件设计
发布时间 : 2025-06-20
作者 : 小编
访问数量 : 23
扫码分享至微信

基于STM32自制三菱PLC之软硬件设计

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的具体使用,等待下期吧。

C#如何模拟PLC写起保停控制板卡

想必做过电工、电气工程师的工控人,都很熟悉起保停。对,就是你们熟悉的那个起保停。这个电路应用范围很广,比如电机的启动停止控制,如果我们把这个电路程序能移植到上位机那么已经事半功倍了。

1.我们先分析下什么叫起保停?

起:启动(启动条件)保:保持(自锁条件)停:停止(停止条件)

2.用C#上位机实现PLC起保停,创建项目这里命名为DEMO1

3.从控件工具库中拖拽Button按钮, 分别命名为btnStart和btnStop并把text属性改为启动和停止,并分别创建MouseDown、 MouseUp事件模拟启动按键和停止按键。(双击事件自动创建)

4.从控件工具库中拖拽Label标签 命名为lblState并把text属性改为 今日头条 模拟运行状态

5.从控件工具库中拖拽timer控件 并把Enabled属性改为 true,把触发 周期改为100ms,模拟PLC扫

6.界面效果图

7.按F7进入代码页,大家查看代码注释理解下,不清楚的可以在评论区问我

public FrmMain()

{

InitializeComponent();

stop = true;//这里停止按钮初始化为抬起状态

}

bool start, stop, run;

private void BtnStart_MouseDown(object sender, MouseEventArgs e)

{

//写启动按下

start = true;

}

private void BtnStart_MouseUp(object sender, MouseEventArgs e)

{

//启动按钮抬起

start = false;

}

private void BtnStop_MouseDown(object sender, MouseEventArgs e)

{

//停止按钮按下

stop = false;

}

private void BtnStop_MouseUp(object sender, MouseEventArgs e)

{

//停止按钮抬起

stop = true;

}

//模拟PLC扫描

private void Timer1_Tick(object sender, EventArgs e)

{

run = (start || run) && stop;//启动和运行或一下(并联)再和停止或一下(串联)

lblState.BackColor = run ? Color.Green : Color.Black;//三元表达式 run为真赋值为绿色为假赋值为黑色

}

7.运行效果图

8.这个只是抛砖引玉,这个timer事件是来自UI线程,实时性不靠谱,实际现场我们会创建独立的线程死循环来处理现场IO数据。可以参考下面的写法

public Form1()

{

InitializeComponent();

Thread t1 = new Thread(PLCRUN);//创建一个线程并把 PLC运行方法传入

t1.IsBackground = true;//设为背景线程

t1.Start();//线程开始运行

}

private void PLCRUN()

{

while (true)

{

try

{

#region 输入映像刷新

#endregion

#region PLC逻辑....

#endregion

#region 输出映像刷新

#endregion

Thread.Sleep(1);//CPU强悍实时性要求高可以不sleep

}

catch (Exception ex)

{

//异常捕捉

}

}

}

9.当然起保停还有直接通过if判断实现或者其他方法实现,我这里只是提供是思路,没必要杠。在起保停的逻辑上可以加各种现场控制逻辑,比如延时逻辑 ,计数逻辑,其他与或非逻辑等等。剩下的大家灵活应用。

10.如果用运动板块控制或者项目比较大,建议分层架构,两层三层都可以。

11.篇幅有限,起保停的相关电路我就不画了,PLC的起保停不写了。我相信大家这块非常熟悉了。

END

如果对您有帮助 欢迎关注、评论、点赞转发。定期出C#上位机 电气 PLC 运动板卡 STM32 自动化相关心得应用

相关问答

stm32接线方法?

接线方法:编码器有5条引线,其中3条是脉冲输出线,1条是COM端线,1条是电源线(OC门输出型)。编码器的电源可以是外接电源,也可直接使用PLC的DC24V电源。电源“-...

如何把plc的Plsr变成C语言?

有国产plc使用stm32处理器,c语言编程的底层程序,大家可以百度一下。有国产plc使用stm32处理器,c语言编程的底层程序,大家可以百度一下。

从技术角度,待在游戏研发公司能学到什么?

目前在一家游戏公司实习,做狼人杀游戏开发的,采用go语言。

用单片机或者PLC设计为主体,可以方便生活中的小设计,大家有什么想法?

对于单片机项目,能够方便生活中的小设计这样的案例有很多第一个,多功能电子时钟,1,单片机最小系统2,使用数码管或者显示屏作为显示,数码管实现较为简单,...3,...

电气电子专业有哪些常用的专业软件?申请方

EE专业这么广。。。不同方向锁涉猎的内容不同,电脑上装的东西肯定是不同的。我就尽我所知挑几个常见的说一说吧。1.VC,作为C语言的基本工具,这个对...

测控技术与仪器专业是学什么的?

作为测控的一员,我告诉你真的可以学到很多对将来工作或者考研有帮助的东西,用这三四年把几块stm32或者51的板子弄通了,基本就可以大功告成了。建议多参加科创...

单片机的就业前景怎么样?

现在家里只要是个电器就有单片机的身影,电饭煲,洗衣机,高端的冰箱,空调,手机实际也是单片机,只不过高大上了,工业的plc控制就是一套成型的单片机,不过单...我说...

怎么样学好51单片机?

三,必须会编程软件,较为经典的软件有Keil软件,IAR编程软件等。能够用这些软件编程调试,完成软件的编写,产生相应的执行文件。四,要学好单片机,建议要会...开发...

erp软件定制性价比高不高?麻烦大佬们,谁了解!!ERP软件选择?

[回答]立蔚联饮料行业对各类能耗实行精细计量、实时监测、智能处理和动态管控,达到精细化管理的目标。以生产运营管理为核心,从ERP/WMS到MES和PLC层的数据...

 丰县生育八孩女子来龙去脉  金立l10 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部