国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

用STM32單片機(jī)制作簡易可編程控制器

2021-12-16 02:02李樹文
關(guān)鍵詞:梯形圖三菱元件

李 通,韓 靜,李樹文

(山西工程職業(yè)學(xué)院 計(jì)算機(jī)信息系,山西 太原 030032)

0 引言

在工業(yè)控制領(lǐng)域,可編程控制器發(fā)揮了巨大作用,但是在小規(guī)模應(yīng)用場景中也存在價格昂貴,維護(hù)成本高的問題[1]。針對上述問題,提出了一種可用于小規(guī)??刂茍龊系暮喴卓删幊炭刂破鞯脑O(shè)計(jì)方案并完成了軟硬件的制作[2-3]。

1 簡易可編程控制器的設(shè)計(jì)思路和功能

1.1 設(shè)計(jì)思路

目前,在工控領(lǐng)域中PLC的使用存在三種方案,一是傳統(tǒng)的PLC系統(tǒng),它技術(shù)成熟,但存在技術(shù)壁壘,兼容性差;二是軟PLC,它基于IEC61131-3標(biāo)準(zhǔn)[4-6],打破了傳統(tǒng)PLC廠家之間的技術(shù)壁壘,代表著PLC的發(fā)展方向。但軟件授權(quán)費(fèi)高,需二次開發(fā);三是基于單片機(jī)的可編程控制器的研究[7],該方法是在單片機(jī)的基礎(chǔ)上實(shí)現(xiàn)PLC的硬件功能,采用VC++等可視化編程方法開發(fā)上位機(jī)軟件,開發(fā)周期長,功能不全,到目前為止仍處于實(shí)驗(yàn)室研究階段。

經(jīng)過分析,決定采用方案一和方案三相結(jié)合的方法,即選擇通信協(xié)議已經(jīng)公開的三菱PLC上位機(jī)編程軟件GXWORK2作為應(yīng)用程序開發(fā)軟件,采用STM32單片機(jī)開發(fā)硬件。

1.2 功能

簡易可編程控制器功能有:1)讀取外部數(shù)字量信號;2)輸出數(shù)字量信號;3)采用梯形圖編寫應(yīng)用程序;4)掉電后數(shù)據(jù)不丟失。

2 簡易可編程控制器硬件設(shè)計(jì)

簡易可編程控制器硬件[8]由電源模塊、CPU模塊、輸入模塊、輸出模塊、通信模塊組成,結(jié)構(gòu)框圖如圖1所示,實(shí)物圖如圖2所示。

圖1 簡易可編程控制器硬件結(jié)構(gòu)框圖Fig.1 Structure block diagram of simple programmable controller hardware

圖2 簡易可編程控制器實(shí)物圖Fig.2 Physical diagram of simple programmable controller

2.1 電源模塊

電源模塊為控制器各模塊提供穩(wěn)定的電能。電源模塊輸出24.0 V,5.0 V,3.3 V三種電壓。其中,24.0 V用于輸入模塊、輸出模塊等外圍電路供電,5.0 V用于通信模塊供電,3.3 V用于CPU內(nèi)核供電。

2.2 CPU模塊

CPU模塊采用STM32F103系列單片機(jī)作為主控制器,最高工作頻率72 MHz,指令的平均執(zhí)行速度可達(dá)1.25 MIPS/MHz.該芯片共有144引腳,64 KB的SRAM、512 KB的FLASH,片內(nèi)資源豐富,性能穩(wěn)定,功耗低,滿足設(shè)計(jì)要求。[8]

CPU模塊除了SWD程序下載電路、時鐘電路、復(fù)位電路等最小系統(tǒng)電路外,還設(shè)計(jì)了后備電源電路、狀態(tài)指示電路,利用片內(nèi)的串行通信控制器及SP3232和SP3485芯片設(shè)計(jì)了RS232和RS485通信模塊,利用片內(nèi)CAN總線控制器及TJA1050芯片設(shè)計(jì)了CAN通信模塊,利用IO接口設(shè)計(jì)了輸入輸出模塊等。各模塊的端口分配如表1所示。

表1 主控芯片端口分配表Table 1 Allocation table of master control chip ports

2.3 輸入模塊

輸入模塊共有24路,采用LTV354交流光耦采集外部輸入信號,并對單片機(jī)的IO口進(jìn)行電氣隔離。該電路既可輸入NPN信號也可輸入PNP信號,但需注意R255和R254不能同時接入電路[9]。電路原理圖如圖3所示,引腳分配見表1.

2.4 輸出模塊

輸出模塊共有16路,采用ULN2803A驅(qū)動繼電器,繼電器采用富士通公司的F3AA024E,既可以驅(qū)動直流驅(qū)動器,也可以驅(qū)動交流驅(qū)動器,最大輸出電流3 A[9].輸出模塊電路原理如圖4所示,引腳分配見表1.

圖3 輸入模塊電路原理圖Fig.3 Electrical schematic diagram of input module

圖4 輸出模塊電路原理圖Fig.4 Electrical schematic diagram of the output module

2.5 通信模塊

通信模塊采用SP3232實(shí)現(xiàn)電平轉(zhuǎn)換,主要功能是與上位機(jī)梯形圖編程軟件GXWORK2通信,下載應(yīng)用程序。引腳分配見表1.

3 簡易可編程控制器軟件設(shè)計(jì)

圖5 簡易可編程控制器工作模式Fig.5 Operation mode of simple programmable controller

簡易可編程控制器軟件設(shè)計(jì)包括系統(tǒng)軟件和應(yīng)用軟件兩部分。系統(tǒng)軟件又具體劃分為運(yùn)行模式和停止模式,這兩種工作模式可通過RUN/STOP開關(guān)切換,不同模式的功能如圖5所示。應(yīng)用軟件指用戶編寫的梯形圖程序,它可以根據(jù)不同的控制需求而改變。

3.1 系統(tǒng)配置及初始化

系統(tǒng)配置主要是軟元件地址分配和程序存儲空間分配。

由PLC的控制原理可知,PLC執(zhí)行的是存儲在ROM區(qū)的控制程序,而運(yùn)行數(shù)據(jù)則存儲在RAM區(qū)。因此,需要在單片機(jī)的RAM區(qū)為每個軟元件分配存儲空間,在Flash區(qū)開辟出控制程序存儲空間,同時在Flash區(qū)開辟出存儲軟元件運(yùn)行數(shù)據(jù)的空間,以便斷電后將這些數(shù)據(jù)保存。

由Cortex-M3權(quán)威指南中可知,STM32單片機(jī)的SRAM地址是從0x20000000開始的64 KB范圍,且是可位尋址的。因此把軟元件運(yùn)行空間分配在此區(qū)域;對照三菱PLC通信協(xié)議[10]將軟元件分配如表2所示。而Flash區(qū)的主存儲器地址是0x08000000-0x0807FFFF的512 KB的范圍內(nèi)。由于Flash區(qū)是以頁為單位擦除的,每頁2 KB,這里設(shè)置程序存儲區(qū)的地址范圍為0x08006000-0x0800DFFF,共可以存儲16 000余步PLC程序。從表2中可以看出,PLC中軟元件共占0x3E80個單元,因此運(yùn)行數(shù)據(jù)保持區(qū)的地址范圍為0x0800E000-0x08011E80的空間內(nèi)。

表2 三菱PLC與STM32單片機(jī)中各軟元件地址分配對照表Table 2 Comparison table of address assignment between Mitsubishi PLC and STM32

圖6 通信數(shù)據(jù)采集原理框圖Fig.6 Block diagram of communication data acquisition principle

3.2 通信服務(wù)程序設(shè)計(jì)

3.2.1分析三菱PLC通信數(shù)據(jù)

為了實(shí)現(xiàn)安裝在PC機(jī)上的GXWORK2軟件與簡易可編程控制器的交互通信,設(shè)計(jì)如圖6所示的通信數(shù)據(jù)采集裝置。結(jié)合三菱FX2N PLC編程口通信協(xié)議,分析獲取的通信數(shù)據(jù)可知,三菱PLC與上位機(jī)的通信機(jī)制分三步:1)通信握手;2)查驗(yàn)PLC型號和軟件版本號;3)讀寫PLC配置信息及程序。表3為通信握手?jǐn)?shù)據(jù)和查驗(yàn)PLC型號和軟件版本號數(shù)據(jù)。

表3 PC機(jī)與PLC部分通信數(shù)據(jù)Table 3 Part of communication data of PC and PLC

3.2.2通信服務(wù)程序設(shè)計(jì)

在對通信數(shù)據(jù)分析的基礎(chǔ)上并結(jié)合三菱PLC通信協(xié)議,設(shè)計(jì)了通信服務(wù)程序流程,流程圖如圖7所示。其中,指令解析函數(shù)包括對X,Y,M,S,T,C,D各軟元件狀態(tài)的讀取或?qū)懭?對X,Y,M,S,T,C各軟元件強(qiáng)制置位或復(fù)位;讀取或?qū)懭隤LC配置參數(shù);讀取或?qū)懭肟刂瞥绦?。解析函?shù)可解析的命令及代碼如表4所示。表3讀寫PLC配置信息及程序數(shù)據(jù)與表4命令吻合。

表4 指令解析函數(shù)可解析的指令Table 4 Instructions resolvable by instruction resolver function

表4 (續(xù))Table 4 (Continue)

3.3 用戶指令解析程序設(shè)計(jì)

圖7 串口通信處理流程圖Fig.7 Serial communication processing flowchart

用戶指令程序是指用戶使用GXWORK2編寫的梯形圖程序或指令程序。這些程序經(jīng)過計(jì)算機(jī)軟件編譯后使用表4中命令“E11”傳送到單片機(jī)的Flash區(qū)中。因此,破解每條指令對應(yīng)的二進(jìn)制代碼是解析梯形圖程序的關(guān)鍵。下面舉例說明獲取梯形圖程序?qū)?yīng)代碼的方法。

首先,在GXWORK2中寫入如圖8所示的梯形圖并下載至單片機(jī)的Flash中,然后,使用STM32的仿真器查看Flash中對應(yīng)存儲單元的數(shù)據(jù),如圖9所示。

圖8 梯形圖示例程序Fig.8 Ladder diagram of sample program

圖9 梯形圖示例程序在單片機(jī)Flash中的編碼Fig.9 Ladder diagram of sample program in the single-chip flash coding

分析圖9中數(shù)據(jù)可知,0x08006000-0x0800605B單元數(shù)據(jù)用于配置PLC的初始值;圖8中梯形圖的編碼對應(yīng)于0x0800605C-0x0800606F地址中的數(shù)據(jù)。

4 結(jié)語

對比現(xiàn)有三種可編程控制器的設(shè)計(jì)方案,提出了將三菱PLC上位機(jī)編程軟件與STM32單片機(jī)相結(jié)合的設(shè)計(jì)方案,實(shí)現(xiàn)了用STM32單片機(jī)制作簡易可編程控制器的軟硬件設(shè)計(jì)任務(wù),并在山西某公司的垂直循環(huán)車庫上完成實(shí)測,控制效果良好。

猜你喜歡
梯形圖三菱元件
承壓類特種設(shè)備受壓元件壁厚測定問題的探討
三菱日聯(lián)銀行
三菱日聯(lián)銀行
三菱電機(jī)自動化(中國)有限公司
PLC梯形圖編程系統(tǒng)應(yīng)用分析
如何讀懂色環(huán)電阻
PLC編譯功能的實(shí)現(xiàn)
S7—200PLC基本編程教學(xué)案例
數(shù)控機(jī)床梯形圖故障設(shè)置方法研究
別致型男 試駕2015款三菱帕杰羅精英超越版
长子县| 澄迈县| 延庆县| 庆城县| 渝北区| 安吉县| 西畴县| 靖安县| 万宁市| 太保市| 响水县| 上饶市| 萨迦县| 富宁县| 乐都县| 庆城县| 新津县| 常宁市| 瑞金市| 北安市| 绥芬河市| 蒙城县| 兴城市| 博白县| 宁城县| 封开县| 常山县| 克拉玛依市| 保亭| 诸城市| 勐海县| 阿荣旗| 洛宁县| 秦安县| 友谊县| 福贡县| 河西区| 鄂托克旗| 湖州市| 阜城县| 呼图壁县|