GENERIC_MODBUS(8) NUT Manual GENERIC_MODBUS(8)

generic_modbus - درایور برای دستگاه‌های یوپی‌اس دارای سیگنال تماسی (مستقیم) متصل‌شده از طریق درگاه‌های ورودی/خروجی راه دور (RIO) مادباس

generic_modbus -h

generic_modbus -a DEVICE_NAME [OPTIONS]


یادداشت (Note)

این صفحهٔ راهنما فقط ویژگی‌های خاص درایور generic_modbus را مستند می‌کند. برای اطلاعات دربارهٔ درایور اصلی، nutupsdrv(8) را ببینید.

این یک درایور عمومی مادباس (modbus) است که انتظار می‌رود با دستگاه‌های یوپی‌اس (UPS) دارای سیگنال تماسی (مستقیم) که از طریق مادباس RIO (ورودی/خروجی راه دور) به‌صورت سریال یا TCP/IP متصل شده‌اند، کار کند.

این درایور با یوپی‌اس PULS (مدل UB40.241) از طریق MOXA ioLogikR1212 (پروتکل RS485) و ioLogikE1212 (پروتکل TCP/IP) آزمایش شده است.

اطلاعات بیشتر دربارهٔ این یوپی‌اس را می‌توانید در اینجا بیابید:

اطلاعات بیشتر دربارهٔ Moxa ioLogik R1212 و E1212 را می‌توانید در اینجا بیابید:

دستگاه PULS UPS UB40.241 از سیگنال‌های زیر پشتیبانی می‌کند:

Ready contact      (DO) <--> HB
Buffering contact  (DO) <--> OL | OB
Battery-low        (DO) <--> LB
Replace Battery    (DO) <--> RB
Inhibit            (DI) <--> FSD

جهت پورت دیجیتال (DI/DO) از دیدگاه دستگاه در نظر گرفته می‌شود.

مفهوم این درایور، نگاشت وضعیت‌های یوپی‌اس (آن‌گونه که در NUT تعریف شده است) بر وضعیت کنتاکت‌های یوپی‌اس است. این درایور دارای یک رابط پیکربندی گسترده است که با استفاده از متغیرهای تعریف‌شده در ups.conf پیاده‌سازی شده است.

راه‌اندازی سرور ورودی/خروجی راه دور مادباس و همچنین دستگاه یوپی‌اس با پیروی از کتابچه‌های راهنمای مربوطه انجام می‌شود. شکل زیر مسیر ارتباطی و اتصال درونی سخت‌افزاری مورد انتظار را نشان می‌دهد:

+------+       +----------------+       +------------+       +------------+
| UPSD | <---> | GENERIC_MODBUS | <---> | MODBUS RIO | <---> | UPS DEVICE |
+------+  (1)  +----------------+  (2)  +------------+  (3)  +------------+
   |                   |
   +------------------+
      HOST CONTROLLER
(1) Unix IPC
(2) RS232 | TCP/IP
(3) contacts

این درایور از تنظیمات اختیاری زیر در فایل ups.conf(5) پشتیبانی می‌کند:

device_mfr=value

رشته‌ای که سازندهٔ دستگاه یوپی‌اس را مشخص می‌کند (پیش‌فرض UNKNOWN).

device_model=value

رشته‌ای که مدل دستگاه یوپی‌اس را مشخص می‌کند (پیش‌فرض UNKNOWN).

ser_baud_rate=value

یک عدد صحیح که نرخ باود پورت سریال را مشخص می‌کند (پیش‌فرض 9600).

ser_data_bit=value

یک عدد صحیح که بیت دادهٔ پورت سریال را مشخص می‌کند (پیش‌فرض 8).

ser_parity=value

یک نویسه که توازن پورت سریال را مشخص می‌کند (پیش‌فرض N).

ser_stop_bit=value

یک عدد صحیح که بیت توقف پورت سریال را مشخص می‌کند (پیش‌فرض 1).

rio_slave_id=value

یک عدد صحیح که شناسهٔ تابع مادباس RIO را مشخص می‌کند (پیش‌فرض 1).

<X>_addr=value

عددی که آدرس مادباس را برای وضعیت X مشخص می‌کند.

<X>_regtype=value

عددی که نوع ثبات مادباس را برای وضعیت X مشخص می‌کند.

مقادیر پیش‌فرض:

1 for X = OL, OB, LB ,HB, RB, CHRG, DISCHRG
0 for X = FSD

مقادیر معتبر:

0:COIL, 1:INPUT_B, 2:INPUT_R, 3:HOLDING

<X>_noro=value

عددی که پیکربندی کنتاکت را برای وضعیت X مشخص می‌کند (پیش‌فرض 1).

مقادیر معتبر:

0:NC, 1:NO

یادداشت (Note)
عبارت NO نشان‌دهندهٔ کنتاکت در حالت عادی باز (normally open) و NC نشان‌دهندهٔ کنتاکت در حالت عادی بسته (normally closed) است.

FSD_pulse_duration=value

عددی که مدت‌زمان پالس بازدارنده را بر حسب میلی‌ثانیه مشخص می‌کند. اگر تعریف نشده باشد، سیگنال بسته به پیکربندی FSD_noro تنها یک گذار خواهد داشت.

مثال‌هایی برای پیکربندی سیگنال FSD:

FSD_noro = 1
FSD_pulse_duration = 150
                     +-----+
                     |     |
inhibit pulse  >-----+     +------------------>
                      <--->
                      150ms
FSD_noro = 0
inhibit pulse  >-----+
                     |
                     +------------------------>

در اینجا نمونه‌ای از پیکربندی درایور generic_modbus در فایل ups.conf آمده است:

[generic_modbus]
  driver = generic_modbus
  port = /dev/ttyUSB0
  desc = "generic ups driver"
  # device info
  device_mfr = "PULS"
  device_model = "UB40.241"
  # serial settings
  ser_baud_rate = 9600
  ser_parity = N
  ser_data_bit = 8
  ser_stop_bit = 1
  # modbus slave id
  rio_slave_id = 5
  # UPS signal state attributes
  OB_addr = 0x0
  OB_regtype = 1
  OB_noro = 0
  LB_addr = 0x1
  LB_regtype = 1
  HB_addr = 0x2
  HB_regtype = 1
  RB_addr = 0x3
  RB_regtype = 1
  FSD_addr = 0x0
  FSD_regtype = 0
  FSD_pulse_duration = 150

این درایور از دستورات فوری زیر پشتیبانی می‌کند:

load.off

دستور «خاموش کردن فوری» (instant poweroff) را اجرا می‌کند.

ممکن است این درایور به‌طور پیش‌فرض ساخته نشود. می‌توانید با نصب libmodbus و اجرای configure --with-modbus=yes آن را بسازید.

همچنین باید مجوزهای مناسب را روی فایل دستگاه سریال محلی (برای مثال /dev/ttyUSB0) تنظیم کنید تا حساب کاربری زمان اجرای درایور NUT بتواند به آن دسترسی داشته باشد.

درایور generic_modbus با هدف پشتیبانی از دستگاه‌های عمومی یوپی‌اس دارای سیگنال‌های تماسی از طریق درگاه‌های مادباس TCP/RTU (که با نام RIO — ورودی/خروجی‌های راه دور شناخته می‌شوند) طراحی شده است. مسیر داده و سیگنال به شکل زیر است:

[UPSD] <--- IPC ---> [GENERIC_UPS] <--- modbus TCP/RTU ---> MODBUS-RIO <--- contacts ---> [UPS DEVICE]

از سوی دیگر، می‌توانید هر نوع سرور مادباس را راه‌اندازی کنید و درایور generic_modbus را برای اتصال و خواندن یا نوشتن در ثبات‌های مشخص پیکربندی نمایید. برنامه کاربردی یا سرور مادباس شما در این صورت می‌تواند با بازنویسی آن ثبات‌ها، وضعیت‌های NUT (مانند OL، OB، HB و غیره) را کنترل کند.

کارت مدیریت شبکهٔ (NMC) یک یوپی‌اس ممکن است دارای یک آدرس IP ثابت یا پویا (مثلاً از طریق DHCP) در شبکهٔ شما باشد. به همین دلیل، ممکن است بخواهید یا مجبور باشید از یک سرویس نام‌گذاری پویا برای دسترسی به یوپی‌اس استفاده کنید. توجه داشته باشید که این موضوع به‌ویژه در زمان قطعی‌های بزرگ برق و خاموش‌سازی‌ها می‌تواند مشکل‌ساز شود؛ زمانی که سرور DHCP/DNS شما ممکن است از کار افتاده باشد در حالی که درایور نیاز به حل‌وفصل نام مربوطه دارد (به‌ویژه در قلاب‌های خاموش‌سازی پایانی، زمانی که نمونهٔ جدیدی از برنامهٔ درایور ممکن است تنها برای دستور به یوپی‌اس جهت خاموش کردن بار یا چرخهٔ روشن/خاموش راه‌اندازی شود).

عاقلانه است اطمینان حاصل کنید که کلاینت سرویس نام‌گذاری سیستم‌عامل شما می‌تواند نام یوپی‌اس را به مدت کافی کش کند، یا از آدرس‌دهی IP ثابت استفاده نمایید (و برای محکم‌کاری یک مدخل در /etc/hosts قرار دهید تا در صورت نیاز به پیکربندی مجدد، فقط یک نقطه برای تغییر وجود داشته باشد).

Dimitris Economou <dimitris.s.economou@gmail.com>

nutupsdrv(8), ups.conf(5)

•صفحهٔ اصلی NUT (ابزارهای یوپی‌اس تحت شبکه): https://www.networkupstools.org/historic/v2.8.5
•صفحهٔ اصلی libmodbus: http://libmodbus.org
06/21/2026 Network UPS Tools 2.8.5