![]() |
![]() |
#31 |
Senior Member
|
![]()
Нужно удалить и установить модуль заново. При возникновении проблем указывать версию модуля, которая находится на вкладке "О модуле". Также нужно приводить содержание журнала с вкладки "Отладка" и используемый скрипт.
Пока вместо остановки можно просто обновлять страничку (F5). Управлять поведением можно полностью при помощи скрипта, задавая временные промежутки. setTimeout() делает отложенное выполнение функции, которая задаётся одним из аргументов. Это сделано специально, чтобы тестировать работу именно несколькими посылками. За время таймаута, учитывая период опроса, их и получается немного.
__________________
Россия навсегда! |
![]() |
![]() |
![]() |
#32 |
Junior Member
Регистрация: 16.05.2014
Адрес: Баку
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Здравствуйте Вячеслав,никак не получается изменить изменить регистр на единицу.Модуль удалял,заново ставил.Прилагаю лог сброса на ноль
Код:
2014.06.18 13:45:54 [INFO:30180] ( => ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB 2014.06.18 13:45:55 [INFO:30180] ( <= ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB 2014.06.18 13:45:55 [INFO:30244] ( => ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB 2014.06.18 13:45:56 [INFO:30244] ( <= ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB 2014.06.18 13:45:56 [INFO:30308] ( => ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB 2014.06.18 13:45:57 [INFO:30308] ( <= ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB 2014.06.18 13:45:57 [INFO:30372] ( => ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB 2014.06.18 13:45:58 [INFO:30372] ( <= ) 0x01_0x05_0x00_0x06_0x00_0x00_0x2D_0xCB Код:
2014.06.18 13:47:30 [INFO:30500] ( => ) 0x01_0x05_0x00_0x06_0x00_0x01_0xEC_0x0B 2014.06.18 13:47:30 [INFO:30500] ( <= ) 0x01_0x85_0x03_0x02_0x91 2014.06.18 13:47:31 [INFO:30564] ( => ) 0x01_0x05_0x00_0x06_0x00_0x01_0xEC_0x0B 2014.06.18 13:47:31 [INFO:30564] ( <= ) 0x01_0x85_0x03_0x02_0x91 2014.06.18 13:47:32 [INFO:30628] ( => ) 0x01_0x05_0x00_0x06_0x00_0x01_0xEC_0x0B 2014.06.18 13:47:32 [INFO:30628] ( <= ) 0x01_0x85_0x03_0x02_0x91 2014.06.18 13:47:33 [INFO:30692] ( => ) 0x01_0x05_0x00_0x06_0x00_0x01_0xEC_0x0B 2014.06.18 13:47:33 [INFO:30692] ( <= ) 0x01_0x85_0x03_0x02_0x91 |
![]() |
![]() |
![]() |
#33 |
Junior Member
Регистрация: 16.05.2014
Адрес: Баку
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Прилагаю также скрипт
Код:
modbus.OnFailure = function( handle, error ) { document.getElementById( 'console' ).value += '\nОшибка: ' + error; } modbus.OnSuccess = function( handle ) { document.getElementById( 'console' ).value += '\nRegister( ' + handle + ', 0 ): ' + modbus.Register( handle, 0 ); } modbus.Serial = { Name: '/dev/ttyUSB0', BaudRate: EnModbusBaudRate.mbBaudRate9600, DataBits: EnModbusDataBits.mbDataBits8Bits, Parity: EnModbusParity.mbParityNone, StopBits: EnModbusStopBits.mbStopBitsOne, Timeout: 100 }; // ReadHoldingRegisters( handle, slaveid, address, quantity, updaterate ) // Starting Address: 0x0000 to 0xFFFF. // Quantity of Inputs: 1 to 125 (0x7D). modbus.WriteSingleCoil( 1, 1, 6, 1, 1000 ); //modbus.ReadHoldingRegisters( 2, 1, 5, 1, 950 ); //modbus.ReadHoldingRegisters( 3, 1, 6, 1, 750 ); modbus.DelayBetweenPoll = 200; modbus.UpdateEnable(1); //modbus.UpdateEnable(2); //modbus.UpdateEnable(3); setTimeout( function() { modbus.UpdateDisable(1); // modbus.UpdateDisable(2); // modbus.UpdateDisable(3); }, 5000 ); |
![]() |
![]() |
![]() |
#34 | |
Senior Member
|
![]() Код:
0x01_0x85_0x03_0x02_0x91 Цитата:
Код:
modbus.WriteSingleCoil( 1, 1, 6, 0xFF00, 1000 ); Код:
( => ) 0x01_0x05_0x00_0x06_0xFF_0x00_0x6C_0x3B ( <= ) 0x01_0x05_0x00_0x06_0xFF_0x00_0x6C_0x3B
__________________
Россия навсегда! |
|
![]() |
![]() |
![]() |
#35 |
Junior Member
Регистрация: 16.05.2014
Адрес: Баку
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Да ,спасибо.И правда.Сейчас все нормально.А теперь как сделать чтобы был постоянный опрос регистров?
|
![]() |
![]() |
![]() |
#36 |
Senior Member
|
![]()
Чтобы был постоянный опрос нужно убрать команды его завершения:
Код:
setTimeout( function() { modbus.UpdateDisable(1); // modbus.UpdateDisable(2); // modbus.UpdateDisable(3); }, 5000 );
__________________
Россия навсегда! |
![]() |
![]() |
![]() |
#37 |
Junior Member
Регистрация: 16.05.2014
Адрес: Баку
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Это тоже на ура.И еще вопросик,ваш скрипт который в модуле нужно вставлять в html?
|
![]() |
![]() |
![]() |
#38 |
Senior Member
|
![]()
Скрипт, который в модуле, физически находится на флешке роутера. Скрипт для того и предназначен, чтобы быть частью html файла. Только, чтобы он заработал, нужно подключить файл modbus.js, а кроме того расположить html файл там же, где находится main.html, который мы видим. Иначе нужно поправлять пути.
В модуле modbus.js есть конструктор: Код:
// Конструктор. function Modbus() { // Свойства. // Путь к скрипту. this.Url = '/cgi-bin/modules/modbus/action.cgi'; // Задержка между запросами. this.DelayBetweenPoll = 100; // Массив задач. this.Tasks = []; // Настройки последовательного порта. this.Serial = { Name: '/dev/ttyATH0', BaudRate: EnModbusBaudRate.mbBaudRate9600, DataBits: EnModbusDataBits.mbDataBits8Bits, Parity: EnModbusParity.mbParityNone, StopBits: EnModbusStopBits.mbStopBitsOne, Timeout: 100 }; } В общем, если применять modbus.js отдельно, то нужно разобраться как он работает с action.cgi. После этого вопросы сами собой должны отпасть.
__________________
Россия навсегда! |
![]() |
![]() |
![]() |
#39 |
Junior Member
Регистрация: 16.05.2014
Адрес: Баку
Сообщений: 18
Вес репутации: 0 ![]() |
![]()
Вот если бы вы приложили бы тут пример на html кнопку,как пример на ардуино здесь на форуме,то мне кажется вопросы многие отпали бы.Нажал кнопку вкл,регистр записал единицу,нажал откл,регистр сбросился
|
![]() |
![]() |
![]() |
#40 |
Senior Member
|
![]()
Вот простой пример html странички с двумя кнопками. Её нужно поместить рядом с main.html в папке /www/modules/modbus/:
Код:
<html> <title>Тест modbus</title> <body> <script src="/modules/modbus/modbus.js"></script> <script language="JavaScript" type="text/javascript"> modbus = new Modbus(); modbus.OnFailure = function( handle, error ) { alert( 'Ошибка: ' + error ); } modbus.OnSuccess = function( handle ) { alert( 'Register( ' + handle + ', 0 ): ' + modbus.Register( handle, 0 ) ); } modbus.Serial = { Name: '/dev/ttyUSB0', BaudRate: EnModbusBaudRate.mbBaudRate9600, DataBits: EnModbusDataBits.mbDataBits8Bits, Parity: EnModbusParity.mbParityNone, StopBits: EnModbusStopBits.mbStopBitsOne, Timeout: 100 }; function On() { modbus.WriteSingleCoil( 1, 1, 6, 0xFF00, 1000 ); modbus.UpdateOnce(1); } function Off() { modbus.WriteSingleCoil( 1, 1, 6, 0x0000, 1000 ); modbus.UpdateOnce(1); } </script> <h4>Тестирование Modbus-RTU.</h4> <button type="button" onclick="On();">Включить</button> <button type="button" onclick="Off();">Выключить</button> </body> </html>
__________________
Россия навсегда! |
![]() |
![]() |
![]() |
Метки |
modbus, modbus-rtu, скрипт, модуль |
Здесь присутствуют: 2 (пользователей: 0 , гостей: 2) | |
|
|