差異處
這裏顯示兩個版本的差異處。
| 兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
| tech:modbus [2020/06/22 17:00] – jonathan_tsai | tech:modbus [2020/08/29 08:42] (目前版本) – jonathan_tsai | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== Modbus TCP 測試 ====== | ||
| + | |||
| + | ===== Master / Slave 模擬測試 ===== | ||
| + | - Slave 模擬設備環境 Exp. 192.168.11.247 : CentOS8 (PVE6 CT template) <code sh> | ||
| + | yum install wget tar | ||
| + | wget https:// | ||
| + | tar -xvf diagslave.tgz | ||
| + | cd diagslave/ | ||
| + | ./diagslave -m tcp | ||
| + | </ | ||
| + | - Master 模擬控制環境 : CentOS8 (PVE6 CT template) <code sh> | ||
| + | yum install wget tar | ||
| + | wget https:// | ||
| + | tar -xvf modpoll.tgz | ||
| + | cd modpoll/ | ||
| + | ./modpoll -m tcp 192.168.11.247 | ||
| + | </ | ||
| + | - [[http:// | ||
| + | |||
| + | < | ||
| + | * 設定開機可以直接啟動 <code sh> | ||
| + | crontab -e | ||
| + | </ | ||
| + | @reboot / | ||
| + | </ | ||
| + | * 重開機後可以看到 /tmp/t.log 出現執行的紀錄訊息 | ||
| + | |||
| + | * 參考網址 - https:// | ||
| + | </ | ||
| + | |||
| + | ===== 使用 Perl 開發 Client(Master) 程式 ===== | ||
| + | - 安裝環境 CentOS8 (PVE6 CT Template) | ||
| + | - 安裝相關模組套件 <code sh> | ||
| + | yum install perl gcc | ||
| + | perl -MCPAN -e shell | ||
| + | upgrade | ||
| + | force install Net:: | ||
| + | install Device:: | ||
| + | exit | ||
| + | </ | ||
| + | - 撰寫簡單讀取測試程式 t.pl < | ||
| + | #! / | ||
| + | |||
| + | use Device:: | ||
| + | use Data:: | ||
| + | use strict; | ||
| + | use warnings; | ||
| + | use v5.10; | ||
| + | |||
| + | my $client = Device:: | ||
| + | host => ' | ||
| + | ); | ||
| + | |||
| + | my $req = $client-> | ||
| + | unit => 3, | ||
| + | address | ||
| + | quantity => 1 | ||
| + | ); | ||
| + | |||
| + | say Dumper $req; | ||
| + | $client-> | ||
| + | my $response = $client-> | ||
| + | say Dumper $response; | ||
| + | |||
| + | $client-> | ||
| + | </ | ||
| + | perl t.pl</ | ||
| + | - 撰寫簡單寫入測試程式 t1.pl < | ||
| + | #! / | ||
| + | |||
| + | use Device:: | ||
| + | use Data:: | ||
| + | use strict; | ||
| + | use warnings; | ||
| + | use v5.10; | ||
| + | |||
| + | my $client = Device:: | ||
| + | host => ' | ||
| + | ); | ||
| + | |||
| + | # Write reg0 -> 12345 | ||
| + | my $req = $client-> | ||
| + | unit => 1, | ||
| + | address | ||
| + | value => 15 | ||
| + | ); | ||
| + | |||
| + | say Dumper $req; | ||
| + | $client-> | ||
| + | my $response = $client-> | ||
| + | say Dumper $response; | ||
| + | |||
| + | |||
| + | $client-> | ||
| + | </ | ||
| + | * 讀寫入的方式有以下幾種 : 參考網址 - https:// | ||
| + | * $req = $client-> | ||
| + | * $req = $client-> | ||
| + | * $req = $client-> | ||
| + | * $req = $client-> | ||
| + | * $req = $client-> | ||
| + | * $req = $client-> | ||
| + | * $req = $client-> | ||
| + | my $req = $client-> | ||
| + | unit => 1, | ||
| + | address | ||
| + | values | ||
| + | ); | ||
| + | </ | ||
| + | * $req = $client-> | ||
| + | my $req = $client-> | ||
| + | unit => 1, | ||
| + | address | ||
| + | values | ||
| + | ); | ||
| + | </ | ||
| + | * $req = $client-> | ||
| + | my $req = $client-> | ||
| + | unit => 1, | ||
| + | read_address | ||
| + | read_quantity => 5, | ||
| + | write_address => 9, | ||
| + | values | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | ===== 使用 PHP 開發 Client(Master) 程式 ===== | ||
| + | - 安裝環境 CentOS8 (PVE6 CT Template) | ||
| + | - 安裝相關模組套件 <code sh> | ||
| + | yum install php php-json | ||
| + | mkdir -p / | ||
| + | cd / | ||
| + | php -r " | ||
| + | php -r "if (hash_file(' | ||
| + | php composer-setup.php | ||
| + | php -r " | ||
| + | ./ | ||
| + | ./ | ||
| + | </ | ||
| + | - 撰寫簡單讀取測試程式 t.php < | ||
| + | mkdir -p / | ||
| + | cd / | ||
| + | vi t.php | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | | ||
| + | |||
| + | |||
| + | ===== 參考網址 ===== | ||
| + | * https:// | ||
| + | * http:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * http:// | ||
| + | |||
| + | {{tag> | ||