Development๐ฉ๐ป๐ฆณ/C#(7)
-
winDowsForms App + plc ํตํฉ ์์ฐ ๋ฐ ํ์ง ๊ด๋ฆฌ ์์คํ ํ๋ก์ ํธ ์์
๊ธฐ๊ฐ์ : 06.19 ~ 7์ 10์ผ๊น์ง ์ฃผ์ ์ฃผ์๊ธฐ๋ฅ๊ณต์ ๊ด๋ฆฌ ์์คํ ๊ธฐ์ค์ ๋ณด, ๊ณตํต์ฝ๋, ๊ณต์ ๊ทธ๋ฃน, ๋จ์๊ณต์ , ์์ฐ๋ณด๊ณ ์ฐฝ๊ณ ๊ด๋ฆฌ ์์คํ ์ฃผ๋ฌธ ์์ง, ์ฐฝ๊ณ ๊ด๋ฆฌ, ์ค๋น๊ด๋ฆฌ, ํ๋ฐฐ ์ ์, ํ๋ฐฐ ์ถ์ ํ์ง ๊ด๋ฆฌ ์์คํ ๊ฒ์ฌ๊ธฐ์ค, ๋ถ๋๊ฒ์ฌ, ๋ถ๋๋ด์ญ, ๋ถ๋ํํฉ, ํด๋ ์์ฒญ๊ตฌ์์ฐ ๊ด๋ฆฌ ์์คํ ์์ ์ง์, ์์ ์ค์ , ์๋ณ๊ทผํ, ๊ณํ ๋ฐ ์ค์ , ๋ฌธ์ ๊ด๋ฆฌ ํ๋ก์ ํธ ํํธ ๊ตฌ์ฑ์์์ฐ ๊ด๋ฆฌ ์์คํ : ์์ ์ง์, ์์ ์ค์ , ์๋ณ๊ทผํ, ๊ณํ ๋ฐ ์ค์ , ๋ฌธ์ ๊ด๋ฆฌํํธ๋ก ์ง์ ๋์๋ค ์ด๊ธฐ ๊ธฐํ ๋ฐ ์ค์ผ์ค๋ฌ ์์ฑ์ ๋ด๊ฐ ๋งก์์ ์งํํ์๋ค. ๊ตฌํ์ฌํญ์ ๋ํ ์ ๋ฐ์ ์ธ ํฐํ์ ์ด๋ฌํ๋ค.์ด ์ค ์ ์ญ์์ผ์ผํ ์งํ๋ค์ ์ ์ญ์ํค๊ณ ์งํํ๊ธฐ๋ก ํ๋ค ํ๋ก ํธ์๋ ํํธ์ ์ง์คํ๊ณ ๋ฐฑ์๋ ๋ถ๋ถ์ ๊ตฌํ์ ์ํ๊ฑฐ๋ ์ฌ์์ ๋ฎ์ถ๋ ๋ฐฉ์์ผ๋ก ์ฒซ ํ๋ก์ ํธ ๊ตฌํ ์์ค์ ..
2024.06.21 -
Arduino์ ๋ธ๋ ๋๋ณด๋๋ก ์์ํ๋ ์ ์๊ณตํ ๊ธฐ์ด: ํ๋ก๊ทธ๋๋ฐ ์ ์ ํ์ํ ์๋ฐ์
๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ:๊ฐ์ด๋ฐ ๊ฒ์์ IC๋ ATmega328P ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ์ ๋๋ค. Arduino UNO์ ๋ ์ญํ ์ ํฉ๋๋ค.USB ํฌํธ:์ผ์ชฝ ์์ ์์นํ๋ฉฐ, ์ปดํจํฐ์์ ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ๋ก ์ฝ๋๋ฅผ ์ ๋ก๋ํ๊ณ ์ง๋ ฌ ํต์ ์ ์ํ ํฌํธ์ ๋๋ค.์ ์ ์ญ:์ผ์ชฝ ํ๋จ์ ๊ฒ์์ ๋ฐฐ๋ด ์ญ์ ์ธ๋ถ ์ ์ ๊ณต๊ธ ์ฅ์น(7-12V DC)๋ก Arduino ๋ณด๋์ ์ ์์ ๊ณต๊ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.๋์งํธ I/O ํ:๋ณด๋์ ์ค๋ฅธ์ชฝ ์๋จ์ ์์นํ 0-13๋ฒ ํ์ ๋์งํธ ์ ๋ ฅ/์ถ๋ ฅ ์์ ์ ์ฌ์ฉ๋ฉ๋๋ค.์๋ ๋ก๊ทธ ์ ๋ ฅ ํ:๋ณด๋์ ์ค๋ฅธ์ชฝ ํ๋จ์ ์์นํ A0์์ A5๊น์ง์ ํ์ ์๋ ๋ก๊ทธ ์ผ์ ๊ฐ์ ์ฝ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.์ ์ ํ:VIN, 5V, 3.3V, GND ํ์ด ํฌํจ๋์ด ์์ผ๋ฉฐ ์ผ์ ๋ฐ ๊ธฐํ ๋ถํ์ ์ ์์ ๊ณต๊ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.๋ฆฌ์ ๋ฒํผ:์ผ์ชฝ ์๋จ์ ..
2024.06.14 -
Mitsubishi PLC์ C# WinForms ์ฐ๋ ๊ฐ์ด๋ ( Guide to Integrating Mitsubishi PLC with C# WinForms )
1. ActUtlType ๊ฐ์ฒด ์ด๊ธฐํ ๋ฐ ์ค์ ๋จผ์ , PLC์์ ํต์ ์ ์ํด ActUtlType ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํ๊ณ ๋ก์ง์ปฌ ์คํ ์ด์ ๋ฒํธ๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.csharp์ฝ๋ ๋ณต์ฌprivate ActUtlType plc;public Form1(){ InitializeComponent(); plc = new ActUtlType(); plc.ActLogicalStationNumber = 1; // ๋ก์ง์ปฌ ์คํ ์ด์ ๋ฒํธ ์ค์ }2. PLC ์ฐ๊ฒฐ (Open Port)PLC์ ์ฐ๊ฒฐํ๋ ๋ฉ์ปค๋์ฆ์ btnOpenPort_Click ์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ๊ตฌํ๋ฉ๋๋ค. ์ด ๋ฉ์๋๋ ActUtlType ๊ฐ์ฒด์ Open ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ PLC์์ ์ฐ๊ฒฐ์ ์๋ํฉ๋๋ค.csharp์ฝ๋ ๋ณต์ฌprivate void btnOpen..
2024.06.14 -
2์ฐจ์ ๋ฐฐ์ด์ ํ์ฉํ ๋คํ์ ํ์ ์ํธ ๊ตฌํ ๋ฐฉ๋ฒ (C#)(Implementing Multi-Tab Patient Encryption Using 2D Arrays in C#)
[์์ 3] 2์ฐจ์ ๋ฐฐ์ด์ ์ด์ฉํ ๋คํ์ ํ์ ์ํธ ๊ตฌํ.zip๊ตฌํํ Vigenere ์ํธํ ํ๋ก๊ทธ๋จ์ ๋ํ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๊ฐ ์ฃผ์ ๋ถ๋ถ์ ์ฝ๋ ๋ฉ์ปค๋์ฆ๊ณผ ์ฃผ์ ๊ตฌํ ๋ผ์ธ, ์ฐ์ ์ฐ์ฐ์, ํจ์๋ค์ ํ๋ฆ์ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.์ ์ฒด ์ฝ๋ ๊ตฌ์กฐVigenere ์ํธํ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ์๋ก๋ถํฐ ํ๋ฌธ๊ณผ ํค์๋๋ฅผ ์ ๋ ฅ๋ฐ์ Vigenere ํ๋ฅผ ์ด์ฉํด ์ํธํ๋ ๋ฌธ์๋ฅผ ์์ฑํฉ๋๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ Windows Forms๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ๋์์ผ๋ฉฐ, ์ฃผ์ ๋ก์ง์ Form1 ํด๋์ค์ ์ด๋ฒคํธ ํธ๋ค๋ฌ์์ ์ฒ๋ฆฌ๋ฉ๋๋ค.์ฃผ์ ์ฝ๋ ๋ฆฌ๋ทฐVigenere ํ ์ด๋ธcsharp์ฝ๋ ๋ณต์ฌ// Vigenere ํ ์ด๋ธ ์์ฑString[,] Vigenere_Table = new String[26, 26];for (int i = 0; i ..
2024.06.14 -
C#์ ์ด์ฉํ ์๋ํ ๋ณด์์ ์ํ ๊ฐ๋จํ ์ํธํ ๊ธฐ๋ฒ(Enhancing Automation Security with Simple Encryption Techniques)
์ํธํ์ ํ์์ฑ ๋ฐ ์ฉ๋ ( Necessity and purpose of encryption ) ๊ณต์ ์๋ํ์์ ์ํธํ ๋ฐ ๋ฐ์ดํฐ ์๊ธฐ ๊ธฐ์ ์ ๋ฐ์ดํฐ ๋ณดํธ, ์์ ํ ํต์ , ํ๋ก์ธ์ค ๋ณด์ ๋ฑ ๋ค์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.1. ๋ฐ์ดํฐ ๋ณดํธ ๋ฐ ๊ธฐ๋ฐ์ฑ ์ ์ง์์ฐ ๋ฐ์ดํฐ ๋ณดํธ: ์์ฐ๋, ๊ณต์ ์๊ฐ, ํ์ง ๊ฒ์ฌ ๊ฒฐ๊ณผ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ๋ณดํธ.๊ธฐ๊ณ ๊ฐ ์์ ํ ํต์ : ๊ธฐ๊ณ ๊ฐ ํต์ ๋ฐ์ดํฐ๋ฅผ ์ํธํํ์ฌ ๋์ฒญ ๋ฐฉ์ง.2. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ฐ ์ธ์ฆ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ: ๋ฐ์ดํฐ ์ ์ก ์ค ๋ณ์กฐ ์ฌ๋ถ ํ์ธ.์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ์ ๊ทผ ์ ์ด: ์ฌ์ฉ์ ์ธ์ฆ ์ ์ํธํ๋ ํ ํฐ ์ฌ์ฉ.3. ํ๋ก์ธ์ค ๋ณด์ ๋ฐ ์ด์ ๊ฐ์งํ๋ก์ธ์ค ๋ณด์ ๊ฐํ: ์ํธํ๋ ๋ช ๋ น์ด๋ก ํน์ ํ๋ก์ธ์ค ๋ณดํธ.์ด์ ๊ฐ์ง ์์คํ : ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ํตํด ๋น์ ์ ํ๋ ํ์ง.4. ๊ณต๊ธ๋ง..
2024.06.12 -
ํจ์จ์ ์ธ ํ๋ ์์ํฌ ์ฝ๋๋ฒ ์ด์ค ๊ตฌ์ฑ ๋ฐฉ๋ฒ: MVC ํจํด๋ถํฐ ์์กด์ฑ ๊ด๋ฆฌ๊น์ง
ํ๋ ์์ํฌ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ช ๊ฐ์ง ๊ท์น๊ณผ ํจํด์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ท์น์ ์ดํดํ๋ฉด ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. ๋ค์์ ํ๋ ์์ํฌ ์ฝ๋๋ฒ ์ด์ค ๊ตฌ์ฑ์ ์ฃผ์ ๊ท์น๊ณผ ํจํด์ ๋๋ค:1. MVC ํจํด (Model-View-Controller)MVC๋ ๋ง์ ํ๋ ์์ํฌ์์ ์ฌ์ฉํ๋ ๋์์ธ ํจํด์ ๋๋ค. ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ธ ๊ฐ์ง ์ฃผ์ ์ปดํฌ๋ํธ๋ก ๋๋๋๋ค:Model: ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ๊ด๋ฆฌํฉ๋๋ค.View: ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.Controller: Model๊ณผ View๋ฅผ ์ฐ๊ฒฐํ๊ณ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ฒ๋ฆฌํฉ๋๋ค.2. ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐํ๋ ์์ํฌ๋ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ์ฑํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ ๋๋ค. ์ผ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:src ๋๋ app: ..
2024.06.06