masoode
سه شنبه 29 دی 1394, 19:10 عصر
با سلام خدمت دوستان
می دونید که یکی از پروتکلهای مهم برای ارتباط با تجهیزات برقی و اتوماسیون (نظیر PLCها) Modbus هست. مدباس به سه دسته کلی تقسیم می شه: Modbus ASCII، Modbus RTU و Modbus TCP/IP
دو دسته اول با استفاده از پورت سریال (RS232 یا RS485) کار می کنه و آخری با پورت اترنت یا همون کارت شبکه خودمون
من با دو روش اول به راحتی کار می کنم. اخیرا مجبور شدم در جایی از TCP/IP استفاده کنم. ظاهرا باید با استفاده از Indy یا Socket این کار انجام بشه
اگر می تونید سرنخ به من بدین تا از جای
ی شروع کنم. البته پروتکلهاش را خوندم و مثلا می دونم باید یک همچین رشته ای را به سمت اون دستگاه فرستاد و اون هم در جواب مقدار رجسیتری را که ما درخواست می دیم را برمیگردونه
in Modbus TCP is:
0001 0000 0006 11 03 006B 0003
0001: Transaction Identifier
0000: Protocol Identifier
0006: Message Length (6 bytes to follow)
11: The Unit Identifier (17 = 11 hex)
03: The Function Code (read Analog Output Holding Registers)
006B: The Data Address of the first register requested. (40108-40001 = 107 =6B hex)
0003: The total number of registers requested. (read 3 registers 40108 to 40110)
اما نمی دونم چطوری بفرستم و بگیرم!!
می دونید که یکی از پروتکلهای مهم برای ارتباط با تجهیزات برقی و اتوماسیون (نظیر PLCها) Modbus هست. مدباس به سه دسته کلی تقسیم می شه: Modbus ASCII، Modbus RTU و Modbus TCP/IP
دو دسته اول با استفاده از پورت سریال (RS232 یا RS485) کار می کنه و آخری با پورت اترنت یا همون کارت شبکه خودمون
من با دو روش اول به راحتی کار می کنم. اخیرا مجبور شدم در جایی از TCP/IP استفاده کنم. ظاهرا باید با استفاده از Indy یا Socket این کار انجام بشه
اگر می تونید سرنخ به من بدین تا از جای
ی شروع کنم. البته پروتکلهاش را خوندم و مثلا می دونم باید یک همچین رشته ای را به سمت اون دستگاه فرستاد و اون هم در جواب مقدار رجسیتری را که ما درخواست می دیم را برمیگردونه
in Modbus TCP is:
0001 0000 0006 11 03 006B 0003
0001: Transaction Identifier
0000: Protocol Identifier
0006: Message Length (6 bytes to follow)
11: The Unit Identifier (17 = 11 hex)
03: The Function Code (read Analog Output Holding Registers)
006B: The Data Address of the first register requested. (40108-40001 = 107 =6B hex)
0003: The total number of registers requested. (read 3 registers 40108 to 40110)
اما نمی دونم چطوری بفرستم و بگیرم!!