์˜์–ดํ”„๋ž‘์Šค์–ด์ŠคํŽ˜์ธ์–ด

์˜จ์›์Šค ํŒŒ๋น„์ฝ˜

DNP3 ํ”„๋กœํ† ์ฝœ Windows c c++ c# .net Windows์šฉ ๋‹ค์šด๋กœ๋“œ

๋ฌด๋ฃŒ ๋‹ค์šด๋กœ๋“œ DNP3 ํ”„๋กœํ† ์ฝœ Windows c c++ c# .net ์˜จ๋ผ์ธ ์‹คํ–‰์„ ์œ„ํ•œ Windows ์•ฑ Ubuntu ์˜จ๋ผ์ธ, Fedora ์˜จ๋ผ์ธ ๋˜๋Š” Debian ์˜จ๋ผ์ธ์—์„œ Win Wine

์ด๊ฒƒ์€ DNP3 ํ”„๋กœํ† ์ฝœ Windows c c++ c# .net์ด๋ผ๋Š” ์ด๋ฆ„์˜ Windows ์•ฑ์ด๋ฉฐ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋Š” DNP3-Protocol.zip์œผ๋กœ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›Œํฌ์Šคํ…Œ์ด์…˜์šฉ ๋ฌด๋ฃŒ ํ˜ธ์ŠคํŒ… ์ œ๊ณต์—…์ฒด์ธ OnWorks์—์„œ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OnWorks์™€ ํ•จ๊ป˜ DNP3 Protocol Windows c c++ c# .net์ด๋ผ๋Š” ์ด ์•ฑ์„ ๋ฌด๋ฃŒ๋กœ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค.

์ด ์•ฑ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ง€์นจ์„ ๋”ฐ๋ฅด์„ธ์š”.

- 1. ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ PC์— ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.

- 2. ํŒŒ์ผ ๊ด€๋ฆฌ์ž https://www.onworks.net/myfiles.php?username=XXXXX์— ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

- 3. ์ด๋Ÿฌํ•œ ํŒŒ์ผ ๊ด€๋ฆฌ์ž์—์„œ ์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

- 4. ์ด ์›น์‚ฌ์ดํŠธ์—์„œ ๋ชจ๋“  OS OnWorks ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜์ง€๋งŒ ๋” ๋‚˜์€ Windows ์˜จ๋ผ์ธ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

- 5. ๋ฐฉ๊ธˆ ์‹œ์ž‘ํ•œ OnWorks Windows OS์—์„œ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ํŒŒ์ผ ๊ด€๋ฆฌ์ž https://www.onworks.net/myfiles.php?username=XXXXX๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

- 6. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

- 7. Linux ๋ฐฐํฌ ์†Œํ”„ํŠธ์›จ์–ด ์ €์žฅ์†Œ์—์„œ Wine์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•ฑ์„ ๋‘ ๋ฒˆ ํด๋ฆญํ•˜์—ฌ Wine๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๊ธฐ ์žˆ๋Š” Windows ํ”„๋กœ๊ทธ๋žจ ๋ฐ ๊ฒŒ์ž„์„ ์„ค์น˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” Wine์„ ํ†ตํ•œ ๋ฉ‹์ง„ ์ธํ„ฐํŽ˜์ด์Šค์ธ PlayOnLinux๋ฅผ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

Wine์€ Linux์—์„œ Windows ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ Windows๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Wine์€ ๋ชจ๋“  Linux ๋ฐ์Šคํฌํƒ‘์—์„œ ์ง์ ‘ Windows ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค Windows ํ˜ธํ™˜์„ฑ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ Wine์€ Windows๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋“  Windows ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก Windows๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ถฉ๋ถ„ํžˆ ๋‹ค์‹œ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ ์ƒท

Ad


DNP3 ํ”„๋กœํ† ์ฝœ Windows c c++ c# .net


๊ธฐ์ˆ 

v21.05.023
ํŒŒ์ผ ์ „์†ก์„ ํฌํ•จํ•œ DNP3 ํ”„๋กœํ† ์ฝœ ํ‘œ์ค€์˜ ์™„์ „ํ•œ ๊ตฌํ˜„.

๋ฐ”์ด๋„ˆ๋ฆฌ ์ž…๋ ฅ, ๋”๋ธ” ๋น„ํŠธ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ž…๋ ฅ, ๋ฐ”์ด๋„ˆ๋ฆฌ ์ถœ๋ ฅ, ์นด์šดํ„ฐ ์ž…๋ ฅ, ์•„๋‚ ๋กœ๊ทธ ์ž…๋ ฅ, ์•„๋‚ ๋กœ๊ทธ ์ถœ๋ ฅ, Octect ์ŠคํŠธ๋ง, ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ์ŠคํŠธ๋ง.

CROB ์ง€์›, "select-before-operate" ๋˜๋Š” "direct-execute" ๋ช…๋ น ์‹คํ–‰ ๋ชจ๋“œ๊ฐ€ ์žˆ๋Š” ์•„๋‚ ๋กœ๊ทธ ์ถœ๋ ฅ ๋ช…๋ น, ์š”์ฒญํ•˜์ง€ ์•Š์€ ์‘๋‹ต, ์‹œ๊ฐ„ ๋™๊ธฐํ™”

C C++, C#(.net) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ง€์›

๋ฌด๋ฃŒ DNP3 ๊ฐœ๋ฐœ ๋ฒˆ๋“ค ๋ฐ›๊ธฐ

๊ฐœ๋ฐœ ๋ฒˆ๋“ค์—๋Š” DNP3 ์„œ๋ฒ„ ๋ฐ ํด๋ผ์ด์–ธํŠธ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ, Windows ๋ฐ Linux SDK๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

http://www.freyrscada.com/DNP3(IEEE-1815)-Windows-Software-Development-Kit(SDK).php

์ƒํ˜ธ ์šด์šฉ์„ฑ:
http://www.freyrscada.com/docs/FreyrSCADA-DNP-Driver-Object-Variation-Support.pdf

๋น„๋””์˜ค ์ž์Šต์„œ :
https://www.youtube.com/playlist?list=PL4tVfIsUhy1abOTxSed3l56FQux5Bn_gj

DNP3 Windows SDK์—๋Š” Win DLL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ •์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐ๋ชจ ์„œ๋ฒ„ ๋ฐ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ, Visual Studio ๋ฐ๋ชจ ์ฝ˜์†” ํ”„๋กœ์ ํŠธ ํŒŒ์ผ, Doxygen์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.



๊ธฐ๋Šฅ

  • ์ด ํ‰๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ’ˆ ์„ค๋ช…์„œ(API ์„ค๋ช…์„œ)(pdf, Doxygen html) ์•ก์„ธ์Šค
  • DNP3(IEEE 1815) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API ๋ฌธ์„œ ์ฐพ์•„๋ณด๊ธฐ
  • ์ œ๊ณต๋œ DNP3 ์˜ˆ์ œ์˜ ์†Œ์Šค ์ฝ”๋“œ ์—ฐ๊ตฌ
  • DNP3 ์˜ˆ์ œ ์ˆ˜์ • ๋ฐ ์ปดํŒŒ์ผ
  • ์ž์‹ ๋งŒ์˜ DNP3 ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์ตœ๊ณ ์˜ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ ํ…Œ์ŠคํŠธํ•˜์‹ญ์‹œ์˜ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜ˆ์ œ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ตœ์†Œ ์‹œ์Šคํ…œ ์š”๊ตฌ ์‚ฌํ•ญ: Windows XP, Vista, Windows 7, 8 ๋ฐ 10 Visual Studio / ๋ชจ๋“  IDE์—์„œ C ๋ฐ C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์›
  • ANSI C๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ค€์ˆ˜
  • ํˆฌ๋ช…ํ•œ ๋ผ์ด์„ ์Šค ์ฒด๊ณ„ - ์ˆจ๊ฒจ์ง„ ๋น„์šฉ ์—†์Œ, ํ›„๋ถˆ ์—†์Œ.
  • ๊ณ ์„ฑ๋Šฅ, ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์•„ํ‚คํ…์ฒ˜
  • ์‹œ์Šคํ…œ ํ†ตํ•ฉ์—…์ฒด์™€ OEM์ด ํ‘œ์ค€ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ปจํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ๋ชจ๋ธ
  • ์ง๋ ฌ, TCP IP, UDP ํ†ต์‹  ์ง€์›
  • ๋ ˆ๋ฒจ 3 ์ค€์ˆ˜
  • ํŒŒ์ผ ์ „์†ก(ํŒŒ์ผ ์ฝ๊ธฐ, ํŒŒ์ผ ์“ฐ๊ธฐ), ๋””๋ ‰ํ† ๋ฆฌ ๋ช…๋ น์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์›์น˜ ์•Š๋Š” ์‘๋‹ต, Octect ๋ฌธ์ž์—ด, ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ์ถœ๋ ฅ ์ง€์›
  • "Select-Before-Operate" ๋ฐ "Direct-Execute" ๋ช…๋ น ์‹คํ–‰ ๋ชจ๋“œ ์ง€์›
  • C, C++, C# ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ง€์›
  • ๊ณ ์ • ์นด์šดํ„ฐ ์ž…๋ ฅ, ๊ณ ์ • ์•„๋‚ ๋กœ๊ทธ ์ž…๋ ฅ ์ง€์› ๊ทธ๋ฃน
  • ์žฅ์น˜ ์†์„ฑ ์ง€์›
  • ์—…๊ณ„์—์„œ ๊ฒ€์ฆ๋œ ๋ชจ๋“  ์ฃผ์š” ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ ํ…Œ์ŠคํŠธ๋จ
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ์ถœ๋ ฅ(CROB) ๋ฐ ์•„๋‚ ๋กœ๊ทธ ์ถœ๋ ฅ ๋ช…๋ น ์ง€์›
  • ์›์น˜ ์•Š๋Š” ์‘๋‹ต, Octect ๋ฌธ์ž์—ด, ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ์ถœ๋ ฅ ์ง€์›
  • ์‹œ๊ณ„ ์‹œ๊ฐ„ ๋™๊ธฐํ™”


์˜ค๋””์–ธ์Šค (Audience)

๊ฐœ๋ฐœ์ž, ์—”์ง€๋‹ˆ์–ด๋ง



ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

C++, ์”จ


์นดํ…Œ๊ณ ๋ฆฌ

SCADA

https://sourceforge.net/projects/dnp3-windows-development-sdk/์—์„œ๋„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋ฌด๋ฃŒ ์šด์˜ ์ฒด์ œ ์ค‘ ํ•˜๋‚˜์—์„œ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์œผ๋กœ ์˜จ๋ผ์ธ์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด OnWorks์—์„œ ํ˜ธ์ŠคํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๋ฌด๋ฃŒ ์„œ๋ฒ„ ๋ฐ ์›Œํฌ์Šคํ…Œ์ด์…˜

Windows ๋ฐ Linux ์•ฑ ๋‹ค์šด๋กœ๋“œ

  • 1
    ๊ฐ€์ƒ์ง€์—˜
    ๊ฐ€์ƒ์ง€์—˜
    VirtualGL์€ 3D ๋ช…๋ น์„
    Unix/Linux OpenGL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„
    ์„œ๋ฒ„ ์ธก GPU ๋ฐ ๋ณ€ํ™˜
    3D ์ด๋ฏธ์ง€๋ฅผ ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ Œ๋”๋ง
    ์–ด๋Š์™€ ...
    VirtualGL ๋‹ค์šด๋กœ๋“œ
  • 2
    libusb
    libusb
    ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    ํ†ต์‹ ํ•  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ
    USB ์žฅ์น˜. ์ฒญ์ค‘: ๊ฐœ๋ฐœ์ž, ์ข…๋ฃŒ
    ์‚ฌ์šฉ์ž/๋ฐ์Šคํฌํ†ฑ. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด: C.
    ์นดํ…Œ๊ณ ๋ฆฌ ...
    ๋‹ค์šด๋กœ๋“œ
  • 3
    ํ†ต์Œ
    ํ†ต์Œ
    SWIG๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
    C๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋žจ๊ณผ
    ๋‹ค์–‘ํ•œ ๊ณ ๊ธ‰ ์ˆ˜์ค€์˜ C++
    ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด. SWIG๋Š” ๋‹ค์Œ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    ๋‹ค๋ฅธ...
    SWIG ๋‹ค์šด๋กœ๋“œ
  • 4
    WooCommerce Nextjs ๋ฐ˜์‘ ํ…Œ๋งˆ
    WooCommerce Nextjs ๋ฐ˜์‘ ํ…Œ๋งˆ
    React WooCommerce ํ…Œ๋งˆ,
    ๋‹ค์Œ JS, Webpack, Babel, Node ๋ฐ
    GraphQL ๋ฐ Apollo๋ฅผ ์‚ฌ์šฉํ•œ Express
    ๊ณ ๊ฐ. React์˜ WooCommerce ์Šคํ† ์–ด(
    ํฌํ•จ: ์ œํ’ˆ...
    WooCommerce Nextjs ๋ฐ˜์‘ ํ…Œ๋งˆ ๋‹ค์šด๋กœ๋“œ
  • 5
    Archlabs_repo
    Archlabs_repo
    ArchLabs์šฉ ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ ์ด๊ฒƒ์€
    ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ
    ์—
    https://sourceforge.net/projects/archlabs-repo/.
    ๊ทธ๊ฒƒ์€ OnWorks์—์„œ ํ˜ธ์ŠคํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค ...
    archlabs_repo ๋‹ค์šด๋กœ๋“œ
  • 6
    ์ œํผ ํ”„๋กœ์ ํŠธ
    ์ œํผ ํ”„๋กœ์ ํŠธ
    Zephyr ํ”„๋กœ์ ํŠธ๋Š” ์ƒˆ๋กœ์šด ์„ธ๋Œ€์ž…๋‹ˆ๋‹ค.
    ์‹ค์‹œ๊ฐ„ ์šด์˜์ฒด์ œ(RTOS)
    ์—ฌ๋Ÿฌ ํ•˜๋“œ์›จ์–ด ์ง€์›
    ์•„ํ‚คํ…์ฒ˜. ๊ทธ๊ฒƒ์€
    ์ž‘์€ ํฌ๊ธฐ์˜ ์ปค๋„...
    Zephyr ํ”„๋กœ์ ํŠธ ๋‹ค์šด๋กœ๋“œ
  • ๋”ยป

Linux ๋ช…๋ น

Ad