教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 基于嵌入式PLC芯片组开发PLC的方法

基于嵌入式PLC芯片组开发PLC的方法

上传者:网友
|
翻新时间:2023-01-05

基于嵌入式PLC芯片组开发PLC的方法

摘要:介绍利用嵌入式PLC芯片组开发PLC产品的方法。整个开发过程全部是自主开发,易学易用,符合国人编程及使用习惯。

关键词:嵌入式PLC芯片组 PLC 开发

嵌入式PLC芯片组是一个加载了嵌入式PLC软件平台的核心芯片组,具备PLC功能和CAN,RS232/485通信功能,能够完成常规过程控制的控制模块。在其基础上,能轻松、快速地设计出PLC产品。下面就以我用嵌入式PLC芯片组开发的24点开关量PLC为例,介绍PLC的开发方法。

1嵌入式PLC芯片组介绍

⒈1嵌入式PLC芯片组原理框图

① 供电:+5V 200mA,RAM有掉电保护功能。

② CPU: C8051F040。

③ 引脚功能:

32 个I/O、4 个AD、 2 个DA

④ 通信接口

CANBUS:整个CAN总线网络互联全由CANSet 软件来实现。设置起来十分简便。

UART0:可用于梯形图程序及上位机的监控,还可以与人机界面通讯。

UART1:可用于下载CANSET软件生成的CAN网络配置文件,可以通过RS485网络连接第三方设备,如PC、三菱PLC等等。

2 、 24点开关量PLC的开发

采用嵌入式PLC芯片组构建单片机嵌入系统,设计方首先要有满足设计自身要求的PLC硬件,另外还要用C或汇编语言编少量的接口驱动程序。

2.1硬件设计

⑴功能特点:

①16点输入,8点输出的开关型通用PLC。

②支持CAN总线网络,可作CAN网络的主站或从站。

③支持梯形图编程,可连接计算机或人机界面。

④支持RS485网络,可作RS485网络的主站或从站。

⑵原理图

原理大体可分为四大部分:即输入、输出、指示灯、通信四大部分

开关量的输入部分原理图

开关量输出部分原理图

指示灯部分

有了输入、输出,怎样知道输入已接通?或者输出已经输出?人们最常用的办法是用指示灯来指示,一看一目了然。

在此我们不妨也来借鉴一下。

通信部分

嵌入式芯片组中有两个串口和一个CAN通信口。串口是RS-232接口。部分电路原理图如下:

在构建原理图时,一定注意各个芯片相连时的电平匹配问题。

⒉2软件开发Uvision2是KEIL C51 for windows 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

整个嵌入式PLC产品的软件包括三个部分。

⑴内核程序(嵌入式PLC内核)

内核的功能体现在梯形图语言、通信及用户驱动程序接口三个方面。

⑵驱动程序的嵌入

用户驱动程序包括头文件部、中断入口调用矢量地址部分和用户程序部分。其中头文件部分和中断入口调用矢量地址部分程序基本是大同小异,主要是用户程序的嵌入部分。内核给出了七个用户嵌入程序的接口,我们只需要充分理解各个接口的功能就可进行嵌入程序的开发了,下面以24点开关量驱动程序的嵌入为例,对用户程序部分作简单的说明。

*******************USER_CONFIG*********************

这部分主要是对用户I/O进行配置。

例:USER_CONFIG:

MOV SFRPAGE,#0FH

MOV P3MDOUT,#0FFH

MOV P2MDOUT,#0FFH

ANL P4MDOUT,#0F0H

ORL P4MDOUT,#0FH

ORL P0MDOUT,#0F0H

ORL P0MDOUT,#0F4H

RET

*******************USER_START**********************

这部分是用户上电初始化程序代码。

例:USER_START:

MOV DPTR,#RAM_PX+1

MOV A,#00H

MOVX @DPTR,A

MOV INPUT_CNT,#08 ;输入口采样次数指针

MOV LAMP_CNT,#00H ;指示灯组数指针

RET

********************INIT_RUN*********************

这部分是用户运行初始化程序代码。如果没有可直接返回。

例:INIT_RUN:

RET

********************INIT_SET*********************

这部分是用户设置初始化程序代码。

例:INIT_RUN:

MOV DPTR,#XLAMP

MOV A,#00H

MOVX @DPTR,A

MOV DPTR,#RAM_PY+1

MOV A,#00H

MOVX @DPTR,A

LCALL SCAN

RET

********************USER_STEP*********************

这部分是用户每步执行程序。如果没有可直接返回。

例:USER_STEP:

RET

********************USER_TMS**********************

这部分是用户2.5MS定时运行程序代码。24点开关量PLC输入的采样及指示灯的刷新这是在这里完成的。

指示灯的刷新:

MOV DPTR,#XLAMP ;XLAMP是指示灯的值

MOVX A,@DPTR

CPL A

MOV P2,A ;P0、P2口是控制指示灯的。

INC DPTR

MOVX A,@DPTR

MOV P0,A

输入口的采样如下:

MOV A,INPUT_CNT

ANL A,#0FH

JNZ USER_INTMS1 ;八次采样结束

RET

USER_INTMS1:DEC A

```````MOV B,#02H

```````MUL AB

```````MOV DPTR,#XINPUT

```````ADD A,DPL

```````MOV DPL,A

```````MOV A,DPH

```````ADDC A,B

```````MOV DPH,A

MOV SFRPAGE,#0FH

ORL P4,#0CH

ANL P4,#0FBH ;P4.2片选

LCALL DELAY

MOV A,P1

MOVX @DPTR,A ;

ORL P4,#04H

ANL P4,#0F7H ;P4.3片选

MOV A,P1

INC DPTR

MOVX @DPTR,A ;保存16个输入口采样值

ORL P4,#08H

DEC INPUT_CNT

RET

DELAY: NOP

NOP

NOP

RET

********************USER_SCAN**********************

这部分是用户演算周期扫描程序代码。如每个输入口的8次采样值的处理、输出的刷新、输入输出指示灯的赋值都可在此完成。

例:输出口的刷新:

MOV DPTR,#RAM_PY+1

MOVX A,@DPTR

CPL A

MOV P3,A

RET

RAM_PY+1的值与输出继电器物理地址一一对应并且输出。其中P3口是控制继电器的。

以上便是驱动程序的嵌入。

综上所述,整个嵌入过程主要是完成三件事情:a、输入采样并对采样进行处理,处理后的结果存放到RAM_PX+

1、 RAM_PX。每个开关量的输入与输入指示灯的物理地址的一一对应并保持刷新。b、输出的刷新。输出刷新的值是从RAM_PY+1 、RAM_PY中取的。同时开关量的输出与输出指示灯的物理地址同样需要一一对应。c、对输入输出指示灯的刷新。

⑶梯形图程序。(略)

由于内核的系统软件中已经加入了232通信、485通信和CAN通信的功能,所以通信功能也就水到渠成了。

3结束语

利用嵌入式芯片组做嵌入式PLC产品,设计方只需用C或汇编 编少量的接口驱动程序——不到源软件设计工作量的10%,且硬件上内核的电磁兼容性有保障,半个月即推出新品。嵌入式PLC芯片组一定会有一个美好的未来!

参考文献

1. 黄石科威自控有限公司《嵌入式PLC原理与应用》

2. 沈阳新华龙有限公司《C8051F040数据手册》

3. 黄石科威自控有限公司《EASY编程手册》

4.《KEIL C51开发环境使用手册》

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!