معرفی
DNP3 مخفف عبارت Distributed Network Protocol Version 3 بهمعنای پروتکل شبکههای گسترده نسخه۳ است که مجموعهای از پروتکلهای ارتباطی استفادهشده بین اجزاء میباشد و در روند سیستمهای اتوماسیون استفاده میشود. استفاده اصلی آن در خدمات رفاهی مانند شرکتهای آبو برق میباشد. بهطورخاص DNP3، برای تسهیل ارتباطات بین انواع مختلفی از جمع آوری دادهها و تجهیزاتکنترلی توسعهیافتهاست و نقشمهمی را در سیستمهای SCADA ایفا میکنند، که توسط ایستگاههای اصلی SCADA، واحدهای ترمینال از راهدور و دستگاههای هوشمند الکترونیکی استفاده میشود. رابط پروتکل DNP3 پیامهای حامل DNP3 را فقط برروی بسترهای RS232/422 یا RS485 استاندارد، پشتیبانی میکند.
DNP3 براساس استانداردهای بینالمللی کمیسیون الکتروتکنیک، کمیته فنی ۵۷، کارگروه ۰۳، که یک OSI سهلایه(معماری عملکرد پیشرفته) پروتکل استاندارد است، برای برنامههای کاربردی کنترل از راهدور میباشد.
فرمت داده
یک فریم FT3 بهعنوان یک بلوک هدر، با طول ثابت، توسط بلوکهای دادهی اختیاری تعریفشدهاست. هر بلوک یک ۱۶بیتی CRC اضافهشده دارد. ICE مشخص میکند که حوزههای هدر، شامل ۲بایت شروع، ۱بایت طول، ۱بایت کنترل، یک آدرس مقصد و یک فیلد داده کاربر، با طول ثابت اختیاری میباشد. در این پیادهسازی طول دادهی ثابت کاربر، بهعنوان آدرسمنبع تعریفشدهاست.
تشریح هدر DNP3:
[SYNC [0X0564: طول فیلد شروع ۲بایت است، بایت اول ۰۵ هگزا دسیمال(۰X۰۵) و بایت دوم نیز ۶۴هگزا دسیمال(۰X۶۴) میباشد.
LENGTH: فیلد LENGTH، یک بایت طول دارد و تعداد بایتهای کاربر را در فریم مشخص میکند. اندازه فیلدهای CONTROL, DESTINATION, SOURSE در این شماره گنجاندهشدهاست. حداقل مقدار برای این فیلد ۵ و حداکثر مقدار ۲۵۵ میباشد.
CONTROL: فیلد CONTROL، شامل جهت فریم، نوع فریم و کنترل اطلاعات جریان میباشد و شکل زیر فیلدهای بایت CONTROL را مشخص میکند. ایستگاه A بهعنوان ایستگاهاصلی تعیینشده، تعریفشدهاست، در اینصورت ایستگاه B ایستگاه اصلی نمیباشد. اولین ایستگاه سازنده پیام، منبع پیام میباشد و ایستگاه دوم، ایستگاه مقصد است.
DIR: جهت انتقال فیزیکی
- ۱ = ایستگاه A به ایستگاه B
- ۰ = ایستگاه B به ایستگاه A
PRM: پیام اولیه
- ۱ = فریم از اولیه (ایستگاه شروع)
- ۰ = فریم از ثانویه (ایستگاه پاسخ)
FCB: بیت شمارش فریم
FCV: شمارش فریم بیت معتبر
- ۱ = بیت شمارش فریم معتبر است
- ۰ = نادیده گرفتن بیت شمارش فریم
DFC: بیت کنترل جریان داده
REC: رزرو شده = ۰
FUNCTION: کد FUNCTION، نوع فریم را شناسایی میکند. تعریف ارزشهای قراردادهشده در این فیلد، بین ایستگاههای اولیه و ثانویه متفاوت است.
CODE: جداولزیر کدهای اجراشده و FCV مربوطه را تعریف میکنند.
PRM = 1
FCV BIT | SERVICE FUNCTION | FRAME TYPE | FUNCTION CODE |
---|---|---|---|
0 | RESET of remote link | SEND – CONFIRM expected | 0 |
0 | Reset of user process | SEND – CONFIRM expected | 1 |
1 | TEST function for link | SEND – CONFIRM expected | 2 |
1 | User Data | SEND – CONFIRM expected | 3 |
0 | Unconfirmed User Data | SEND – NO REPLY expected | 4 |
0 | REQUEST LINK STATUS | REQUEST – RESPOND expected | 9 |
SERVICE FUNCTION | FRAME TYPE | FUNCTION CODE |
---|---|---|
ACK – positive acknowledgement | CONFIRM | 0 |
NACK – Message not accepted, Link busy | CONFIRM | 1 |
(Status of Link (DFC = 0 or DFC = 1 | RESPOND | 11 |
مثال
ایستگاه اولیه:
0564 0BC4 0400 0300 E42B E5C0 0102 0006 985C
05 64 | – 2 bytes – DNP3 frame start |
0B | – 1 byte – Length field |
C4 | – 1 byte – Control field – primary station transmit |
0400 | – 2 bytes – Destination address – 0004 decimal |
0300 | – 2 bytes – Source address – 0003 decimal |
E42B | – 2 bytes – DNP3 header CRC |
E5C0 0102 0006 | – 8 bytes – DNP3 data payload |
985C | – 2 bytes – CRC of data payload |
ایستگاه ثانویه:
18:33:26.058 tx 17 | S01 0564 0A44 0300 0400 7CAE E0C0 8100 00C1 F0
– 2 bytes – DNP3 frame start | |
0A | – 1 byte – Length field |
44 | – 1 byte – Control field – secondary station transmit |
0300 | – 2 bytes – Destination address – 0003 decimal |
0400 | – 2 bytes – Source address – 0004 decimal |
7CAE | – 2 bytes – DNP3 header CRC |
E0C0 8100 00 | – 7 bytes – DNP3 data payload |
C1F0 | – 2 bytes – CRC of data payload |
منبع:سیسوگ