'\" t .\" Title: generic_modbus .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 06/21/2026 .\" Manual: NUT Manual .\" Source: Network UPS Tools 2.8.5 .\" Language: Persian .\" .TH "GENERIC_MODBUS" "8" "06/21/2026" "Network UPS Tools 2\&.8\&.5" "NUT Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" generic_modbus \- درایور برای دستگاه‌های یوپی‌اس دارای سیگنال تماسی (مستقیم) متصل‌شده از طریق درگاه‌های ورودی/خروجی راه دور (RIO) مادباس .SH "خلاصه دستور (SYNOPSIS)" .sp \fBgeneric_modbus\fR \-h .sp \fBgeneric_modbus\fR \-a \fIDEVICE_NAME\fR [\fIOPTIONS\fR] .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBیادداشت (Note)\fR .ps -1 .br .sp این صفحهٔ راهنما فقط ویژگی‌های خاص درایور \fBgeneric_modbus\fR را مستند می‌کند\&. برای اطلاعات دربارهٔ درایور اصلی، \fBnutupsdrv\fR(8) را ببینید\&. .sp .5v .RE .SH "سخت‌افزارهای پشتیبانی‌شده (SUPPORTED HARDWARE)" .sp این یک درایور عمومی مادباس (modbus) است که انتظار می‌رود با دستگاه‌های یوپی‌اس (UPS) دارای سیگنال تماسی (مستقیم) که از طریق مادباس RIO (ورودی/خروجی راه دور) به‌صورت سریال یا TCP/IP متصل شده‌اند، کار کند\&. .sp این درایور با یوپی‌اس PULS (مدل UB40\&.241) از طریق MOXA ioLogikR1212 (پروتکل RS485) و ioLogikE1212 (پروتکل TCP/IP) آزمایش شده است\&. .PP اطلاعات بیشتر دربارهٔ این یوپی‌اس را می‌توانید در اینجا بیابید: .RS 4 https://products\&.pulspower\&.com/ca/ubc10\-241\-n1\&.html .RE .PP اطلاعات بیشتر دربارهٔ Moxa ioLogik R1212 و E1212 را می‌توانید در اینجا بیابید: .RS 4 https://www\&.moxa\&.com/en/products/industrial\-edge\-connectivity/controllers\-and\-ios .RE .sp دستگاه PULS UPS UB40\&.241 از سیگنال‌های زیر پشتیبانی می‌کند: .sp .if n \{\ .RS 4 .\} .nf Ready contact (DO) <\-\-> HB Buffering contact (DO) <\-\-> OL | OB Battery\-low (DO) <\-\-> LB Replace Battery (DO) <\-\-> RB Inhibit (DI) <\-\-> FSD .fi .if n \{\ .RE .\} .sp جهت پورت دیجیتال (DI/DO) از دیدگاه دستگاه در نظر گرفته می‌شود\&. .sp مفهوم این درایور، نگاشت وضعیت‌های یوپی‌اس (آن‌گونه که در NUT تعریف شده است) بر وضعیت کنتاکت‌های یوپی‌اس است\&. این درایور دارای یک رابط پیکربندی گسترده است که با استفاده از متغیرهای تعریف‌شده در ups\&.conf پیاده‌سازی شده است\&. .SH "اتصال درونی سخت‌افزار (HARDWARE INTERCONNECTION)" .sp راه‌اندازی سرور ورودی/خروجی راه دور مادباس و همچنین دستگاه یوپی‌اس با پیروی از کتابچه‌های راهنمای مربوطه انجام می‌شود\&. شکل زیر مسیر ارتباطی و اتصال درونی سخت‌افزاری مورد انتظار را نشان می‌دهد: .sp .if n \{\ .RS 4 .\} .nf +\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-+ | UPSD | <\-\-\-> | GENERIC_MODBUS | <\-\-\-> | MODBUS RIO | <\-\-\-> | UPS DEVICE | +\-\-\-\-\-\-+ (1) +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ (2) +\-\-\-\-\-\-\-\-\-\-\-\-+ (3) +\-\-\-\-\-\-\-\-\-\-\-\-+ | | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ HOST CONTROLLER (1) Unix IPC (2) RS232 | TCP/IP (3) contacts .fi .if n \{\ .RE .\} .SH "آرگومان‌های اضافی (EXTRA ARGUMENTS)" .sp این درایور از تنظیمات اختیاری زیر در فایل \fBups.conf\fR(5) پشتیبانی می‌کند: .SS "عمومی (Generic):" .PP \fBdevice_mfr\fR=\fIvalue\fR .RS 4 رشته‌ای که سازندهٔ دستگاه یوپی‌اس را مشخص می‌کند (پیش‌فرض UNKNOWN)\&. .RE .PP \fBdevice_model\fR=\fIvalue\fR .RS 4 رشته‌ای که مدل دستگاه یوپی‌اس را مشخص می‌کند (پیش‌فرض UNKNOWN)\&. .RE .SS "سریال (Serial):" .PP \fBser_baud_rate\fR=\fIvalue\fR .RS 4 یک عدد صحیح که نرخ باود پورت سریال را مشخص می‌کند (پیش‌فرض 9600)\&. .RE .PP \fBser_data_bit\fR=\fIvalue\fR .RS 4 یک عدد صحیح که بیت دادهٔ پورت سریال را مشخص می‌کند (پیش‌فرض 8)\&. .RE .PP \fBser_parity\fR=\fIvalue\fR .RS 4 یک نویسه که توازن پورت سریال را مشخص می‌کند (پیش‌فرض N)\&. .RE .PP \fBser_stop_bit\fR=\fIvalue\fR .RS 4 یک عدد صحیح که بیت توقف پورت سریال را مشخص می‌کند (پیش‌فرض 1)\&. .RE .SS "مادباس (Modbus):" .PP \fBrio_slave_id\fR=\fIvalue\fR .RS 4 یک عدد صحیح که شناسهٔ تابع مادباس RIO را مشخص می‌کند (پیش‌فرض 1)\&. .RE .SS "وضعیت‌ها (States) (X = OL, OB, LB, HB, RB, CHRG, DISCHRG, FSD)" .PP \fB_addr\fR=\fIvalue\fR .RS 4 عددی که آدرس مادباس را برای وضعیت X مشخص می‌کند\&. .RE .PP \fB_regtype\fR=\fIvalue\fR .RS 4 عددی که نوع ثبات مادباس را برای وضعیت X مشخص می‌کند\&. .RE .PP مقادیر پیش‌فرض: .RS 4 .sp .if n \{\ .RS 4 .\} .nf 1 for X = OL, OB, LB ,HB, RB, CHRG, DISCHRG 0 for X = FSD .fi .if n \{\ .RE .\} .RE .PP مقادیر معتبر: .RS 4 .sp .if n \{\ .RS 4 .\} .nf 0:COIL, 1:INPUT_B, 2:INPUT_R, 3:HOLDING .fi .if n \{\ .RE .\} .RE .PP \fB_noro\fR=\fIvalue\fR .RS 4 عددی که پیکربندی کنتاکت را برای وضعیت X مشخص می‌کند (پیش‌فرض 1)\&. .RE .PP مقادیر معتبر: .RS 4 .sp .if n \{\ .RS 4 .\} .nf 0:NC, 1:NO .fi .if n \{\ .RE .\} .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBیادداشت (Note)\fR .ps -1 .br عبارت NO نشان‌دهندهٔ کنتاکت در حالت عادی باز (normally open) و NC نشان‌دهندهٔ کنتاکت در حالت عادی بسته (normally closed) است\&. .sp .5v .RE .RE .SS "خاموش‌سازی (Shutdown)" .PP \fBFSD_pulse_duration\fR=\fIvalue\fR .RS 4 عددی که مدت‌زمان پالس بازدارنده را بر حسب میلی‌ثانیه مشخص می‌کند\&. اگر تعریف نشده باشد، سیگنال بسته به پیکربندی FSD_noro تنها یک گذار خواهد داشت\&. .sp مثال‌هایی برای پیکربندی سیگنال FSD: .RE .sp .if n \{\ .RS 4 .\} .nf FSD_noro = 1 FSD_pulse_duration = 150 +\-\-\-\-\-+ | | inhibit pulse >\-\-\-\-\-+ +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-> <\-\-\-> 150ms FSD_noro = 0 inhibit pulse >\-\-\-\-\-+ | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-> .fi .if n \{\ .RE .\} .SH "پیکربندی (CONFIGURATION)" .sp در اینجا نمونه‌ای از پیکربندی درایور generic_modbus در فایل \fBups\&.conf\fR آمده است: .sp .if n \{\ .RS 4 .\} .nf [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 .fi .if n \{\ .RE .\} .SH "دستورات فوری (INSTANT COMMANDS)" .sp این درایور از دستورات فوری زیر پشتیبانی می‌کند: .PP load\&.off .RS 4 دستور «خاموش کردن فوری» (instant poweroff) را اجرا می‌کند\&. .RE .SH "نصب (INSTALLATION)" .sp ممکن است این درایور به‌طور پیش‌فرض ساخته نشود\&. می‌توانید با نصب libmodbus و اجرای configure \-\-with\-modbus=yes آن را بسازید\&. .sp همچنین باید مجوزهای مناسب را روی فایل دستگاه سریال محلی (برای مثال /dev/ttyUSB0) تنظیم کنید تا حساب کاربری زمان اجرای درایور NUT بتواند به آن دسترسی داشته باشد\&. .SH "نکات دیگر (OTHER NOTES)" .sp درایور generic_modbus با هدف پشتیبانی از دستگاه‌های عمومی یوپی‌اس دارای سیگنال‌های تماسی از طریق درگاه‌های مادباس TCP/RTU (که با نام RIO \(em ورودی/خروجی‌های راه دور شناخته می‌شوند) طراحی شده است\&. مسیر داده و سیگنال به شکل زیر است: .sp .if n \{\ .RS 4 .\} .nf [UPSD] <\-\-\- IPC \-\-\-> [GENERIC_UPS] <\-\-\- modbus TCP/RTU \-\-\-> MODBUS\-RIO <\-\-\- contacts \-\-\-> [UPS DEVICE] .fi .if n \{\ .RE .\} .sp از سوی دیگر، می‌توانید هر نوع سرور مادباس را راه‌اندازی کنید و درایور generic_modbus را برای اتصال و خواندن یا نوشتن در ثبات‌های مشخص پیکربندی نمایید\&. برنامه کاربردی یا سرور مادباس شما در این صورت می‌تواند با بازنویسی آن ثبات‌ها، وضعیت‌های NUT (مانند OL، OB، HB و غیره) را کنترل کند\&. .SH "مشکلات شناخته‌شده (KNOWN ISSUES)" .SS "استفاده از نام میزبان برای NMC یوپی‌اس (Using host names for UPS NMC)" .sp کارت مدیریت شبکهٔ (NMC) یک یوپی‌اس ممکن است دارای یک آدرس IP ثابت یا پویا (مثلاً از طریق DHCP) در شبکهٔ شما باشد\&. به همین دلیل، ممکن است بخواهید یا مجبور باشید از یک سرویس نام‌گذاری پویا برای دسترسی به یوپی‌اس استفاده کنید\&. توجه داشته باشید که این موضوع به‌ویژه در زمان قطعی‌های بزرگ برق و خاموش‌سازی‌ها می‌تواند مشکل‌ساز شود؛ زمانی که سرور DHCP/DNS شما ممکن است از کار افتاده باشد در حالی که درایور نیاز به حل‌وفصل نام مربوطه دارد (به‌ویژه در قلاب‌های خاموش‌سازی پایانی، زمانی که نمونهٔ جدیدی از برنامهٔ درایور ممکن است تنها برای دستور به یوپی‌اس جهت خاموش کردن بار یا چرخهٔ روشن/خاموش راه‌اندازی شود)\&. .sp عاقلانه است اطمینان حاصل کنید که کلاینت سرویس نام‌گذاری سیستم‌عامل شما می‌تواند نام یوپی‌اس را به مدت کافی کش کند، یا از آدرس‌دهی IP ثابت استفاده نمایید (و برای محکم‌کاری یک مدخل در /etc/hosts قرار دهید تا در صورت نیاز به پیکربندی مجدد، فقط یک نقطه برای تغییر وجود داشته باشد)\&. .SH "نویسنده (AUTHOR)" .sp Dimitris Economou .SH "همچنین ببینید (SEE ALSO)" .SS "درایور اصلی (The core driver):" .sp \fBnutupsdrv\fR(8), \fBups.conf\fR(5) .SS "منابع اینترنتی (Internet resources):" .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} صفحهٔ اصلی NUT (ابزارهای یوپی‌اس تحت شبکه): https://www\&.networkupstools\&.org/historic/v2\&.8\&.5 .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} صفحهٔ اصلی libmodbus: http://libmodbus\&.org .RE