發表文章

用 Python 控制 Mitsubishi PLC:MC Protocol ASCII 封包實作教學

圖片
  A Python Read and Write Mitsubishi PLC using MC Protocol (ASCII mode),for M/D devices 簡介 在這篇文章中,我會介紹一套我親手開發的 Python 模組,可以直接與 Mitsubishi PLC 通訊,透過 MC Protocol(ASCII 3C frame)產生控制封包。 它能幫你從 Python 程式中,直接寫入 PLC 的 M 點、D 點,甚至可做 32-bit 控制,不需額外使用 I/O 卡或 HMI 軟體。             📍 專案連結: GitHub - python-mc-protocol 為什麼會做這個 當初我在設計 PC-based 自動化工站時,發現 PLC 通訊是個關卡。 傳統的方式多半依賴 I/O 卡、HMI 軟體,成本高又不靈活。 而我選擇用 Python 來做上位控制邏輯,希望直接控制馬達動作,但網路上卻找不到完整的 MC Protocol 實作範例。 所以我就自己動手寫了一份,並整理成模組分享出來。   Fig1,Schematic diagram 這套工具能做什麼? 功能 說明 ✅ Batch / Random 寫入 支援 M點、D點 ✅ 十進位輸入 自動轉換成 PLC 所需格式 ✅ 支援 32-bit 寫入 D10/D11 組合資料 ✅ 串口(Serial) or TCP 皆可使用 通用型通訊設計 ✅ 可整合在 PyQt、自動化流程中 適用 IPC 控馬達或裝置 下面是快速範例 from mc_protocol_rw import McProtocolRW from utils import dec_to_ascii_hex_list, dec32_to_Dword_ascii mc = McP...

DIY AC inverter _2 (H Bridge)

圖片
DIY AC inverter 書接上文,剛剛完成  sinewave generator ,我馬上用4個MOS(IRF840) 直接做一個H_bridge (Fig1, H_bridge on bread board),接上DC 12V 馬上測測看 (Fig2, 量測結果)。 Fig1, 直接做一個H_bridge Fig2, AC輸出量測 Fig2, AC輸出波型量測 ,從結果看來,確實是轉為AC了,就是波型差了點... 。 MOS 打不開也關不上, 果然沒這麼簡單,要設計一套驅動電路(Fig3, 4) 。我將 circuit diagram 分享到GitHub。 Fig3 PCB lay out Fig4 All connected PCB Port 連接說明(Fig 3) 左: DC24 in / AC24 out 下:連接Microchip (3V3/0V/ H_bridge R1A~ R1D) 右:MOS driver power, 15V/ -5V, GNG(註1) 註1:DC24 in GND, 與MOS driver GND 共地 Fig 4 成品分享  馬上接示波器, 來看一下波形怎麼樣(Fig 5), 我們可以發現...... 50Hz 是正確了,但是變成了方波。 Fig 5  我實在是Confuse ? 所以拖到現在都不知道該如何往下寫。我也想不出來要怎樣查修..... 後來突發奇想,在AC output 端接上一個小燈泡(40W),波形立刻產生改變(Fig6) Fig6, wave with 40W loading 觀察到這變化之後,我找來了2個鋁殼電阻( 24V / 12 Omh ~ 0.5A), 接上示波器再量一下波形(Fig7 ) Fig7 連接鋁殼電阻 Fig8 wave under 12Omh loading(24V* 0.5A) 我隱約看到SineWave,就差在正確/適合的LC filter,後面我們慢慢調整再來跟大家分享。 實驗我們慢慢做,慢慢優化。 優化方向 :  1️⃣ 加上「預載電阻」,看看無負載時的波形是否改善? 2️⃣ 調整 LC 濾波器(L 或 C)來優化波形 3️⃣ 測試不同類型的負載 (電阻型/電容型/電桿型),看看波形變化。 先到這裡停下來(2025-Feb-27)。

DIY AC inverter _1(Sine Wave)

圖片
  今天是Jan_29,(蛇年) 新春今天我想與大家分享,我的New year project。 如標題,我自己製作一個DC AC inverter。我在前篇文章 diy-motor-driver 中製作驅動器,這個Project 我意識到,對於H橋好像/疑似...... 沒有這麼的熟練。H橋,非常得泛用,驅動器逆變器...越思考細節,就越多的疑惑。帶著這些問號,我開始了這個Project。 Fig1. 我們印象中的 H Bridge 好我整個裡一下我的疑惑 Q1 : NMOS作為上管,要如何驅動? Q1/Q3 Source 對應到不是GND..... Q2 : 我要如何用PWM 驅動 ? 如何產生Sine wave (弦波) ? .....更多疑惑,我除了H_Bridge...本身,一概不懂。

DIY motor driver

圖片
前陣子用PLC 下來控電動缸,看到用很多人用"HW-039",不過都是接Arduino,為主。 接PLC 呢? 還需要用光耦合進行隔離(24V=>5V/3.3),為此我們還需要為他添加一個5V Power 不確定是不是只有我這樣玩,總之接了一堆的元件,放在配電盤裡很亂⋯⋯ 所以回到頭"HW-039",本身是什麼? 我找到圖( HW-039 細節 ) , PCB 上面也就10 個元件左右 主要元件 1. BTS7960,英飛凌的半橋(現成的半橋) 2. 74HC244D, ti 的Buffer 其他元件 1.電阻 2.連接Pin 看到元件這麼少,在看到桌上的電盤亂成一團(Fig 1),我手癢了....... 想要來自己Lay Fig 1,亂成一團 先盤點一下現在的痛點 & 我想要什麼? 1. "HW-039",使用的5V,這好解決用便當盒來供電 (AC220=> 5V DC) 2. Relay,用來切換正逆轉,將PLC 的PWM 切換到Pin1(R_PWM)/ Pin2(L_PWM)。後面說明 3.按鈕開關 R_EN/L_EN 簡單的On / OFF 4.光耦合模組 DC24的PWM 👉 5V PWM