Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
doc:sertoeth7188ex:main [2013/05/16 13:07]
jamis7005 [incoming requests]
doc:sertoeth7188ex:main [2013/07/08 14:11] (текущий)
vitaly [Режим Init]
Строка 2: Строка 2:
  
 ===== Индикация ===== ===== Индикация =====
 +Контроллер имеет 5 семисегментных индикаторов. Каждый из индикаторов индицирует работу одного последовательного порта, нумерация слева направо. Используются только горизонтальные сегменты:​
 +  - **верхний** - запись в serial порт
 +  - **средний** - прием из serial порта
 +  - **нижний** - отправка tcp-клиенту
 +
  
 ===== Протокол обмена ===== ===== Протокол обмена =====
Строка 7: Строка 12:
 ==== outcoming requests ==== ==== outcoming requests ====
  
-  &<​cmd>​[<​portparams>​][:<​data>​][<crc>]<cr>+  &<​cmd>​[параметры][данные][<cr>] 
 +  ​
   ​   ​
 **&** - маркер начала посылки **&** - маркер начала посылки
   ​   ​
 **cmd** - команда **cmd** - команда
-  * **h<​port>​** - запись в порт в символьном hex-формате,​ где port - номер последовательного контроллера. Пример:​ ''&​h1:3132330D<​cr>''​ отправка в serial последовательности байт ''​31 32 33 0D''​.  +  * **h<port><​data>** - запись в порт в символьном hex-формате,​ где port - номер последовательного контроллера ​(от 1 до 9). Пример:​ ''&​h13132330D<​cr>''​ отправка в serial последовательности байт ''​31 32 33 0D''​.  
-  * **b<​port>​** - запись в порт в символьном bin-формате. Кодировка ​некоторых ​символов данных:​ <​code>​+  * **b<port><​data>** - запись в порт в символьном bin-формате. Кодировка символов данных:​ <​code>​
     &     ​--> ​ \a     &     ​--> ​ \a
     \     ​--> ​ \\     \     ​--> ​ \\
-   <​cr> ​  --> ​ \r</​code>​ Пример:​ ''&​b1:​Ampersand-\a. Backslash-\\.\r<​cr>''​ отправка в serial строки ''​Ampersand-&​. Backslash-\.<​cr>''​. +   #10   --> ​ \r 
-  * **setport ​<​tcpport>​** - установка tcp-порта,​ пример:​ ''&​setport ​3070<​cr>''​ +   #​13 ​  ​--> ​ \n 
-  * **setmask ​<​ipmask>​** - установка маски, пример:​ ''&​setmask ​255.255.255.0<​cr>''​ +   </​code> ​остальные символы идут как есть. 
-  * **setip <address>** - установка ​ip, пример:​ ''&​setip 192.168.0.55<​cr>''​ +   Пример:​ ''&​b1:​Ampersand-\a. Backslash-\\.\r<​cr>''​ отправка в serial строки ''​Ampersand-&​. Backslash-\.<​cr>''​. 
-  * **crcmode ​<off|on>** - установка режима ​crc, пример''&​crcmode on<cr>''​+  * **<​tcpport>​** - установка tcp-порта ​в память, пример:​ ''&​3070''​ 
 +  * **i <​address>​** - установка ip в память,​ пример:​ ''&​i 192.168.0.55<​cr>''​ 
 +  * **<​ipmask>​** - установка маски ​в память, пример:​ ''&​255.255.255.0<​cr>''​ 
 +  * **<шлюз>** - установка ​шлюза в память, пример:​ ''&​192.168.255.10<​cr>''​ 
 +  * **<параметры>** - параметры последовательного порта = 4 символа:  
 +  - baud (по умолчанию **C8N1**):​ 
 +<​code>​ 
 +0 - 50 
 +1 - 75 
 +2 - 110 
 +3 - 134 
 +4 - 150 
 +5 - 300 
 +6 - 600 
 +7 - 1200 
 +8 - 1800 
 +9 - 2400 
 +A - 4800 
 +B - 7200 
 +C - 9600 
 +D - 19200 
 +E - 38400 
 +F - 57600 
 +G - 115200 
 +H - 230400 
 +I - 460800 
 +J - 921600</​code>​ 
 +  - data bits: **8** или 7 
 +  - parity (по умолчанию **N**):<code> 
 +N - NONE  
 +E - EVEN  
 +O - ODD   
 +M - MARK  
 +S - SPACE</​code>​ 
 +  - stop bits: **1** или 2
  
-**data** - данные+  ​* **x** - рестарт, пример: ''&​x''​
  
-**crc** - crc16, четыре символа в hex-формате. ​Считается от маркера начала посылки включительно ​до последнего байта данных включительно.+Команды начинаются от &далее считываются параметры команды,​ затем данные,​ прием данных ограничивается <cr>, концом передачи или 1000 символов (максимально ​возможный объем буфера) в зависимости от того, что наступит ранее. __Внимание! Параметры команд идут через пробел за именем команды (исключения команды b и h)__. В случае прихода команд на изменение адреса, полученные данные сохраняются в память,​ но работать не начинают. Для применения новых настроек необходимо перезагрузить ПЛК. 
 +При первом старте рекомендуется ​включать режим Init для первоначальной установки ​параметров в памяти. При работе необходимо режим Init отключать. В случае режима Init из памяти загружаются не сохраненные ​данные, а параметры по умолчанию. Смена параметров происходит только ​в момент загрузки, в процессе работы флаг не проверяется. В режиме Init возможно странное поведение TCP части контроллера т.к. в этот момент контроллер работает и по заводскому адресу 192.168.255.1:​10000
  
-**<​cr>​** - маркер конца посылки+Все установочные значения сохраняются в eeprom контроллера (см карту памяти). 
 + 
 +**data** - данные 
 + 
 +**<​cr>​** - маркер конца посылки ​(#10). если его в посылке нет, то концом считается - конец передачи. если есть, то конец посылки считается равным ему, остальное отбрасывается.
  
 ==== incoming requests ==== ==== incoming requests ====
 <​code>​ <​code>​
-  &<​cmd>​:<​data>​[<​crc>​]<​cr>​+  &<​cmd><​data>​[<​crc>​]<​cr>​
 </​code>​ </​code>​
   ​   ​
 **cmd**  ​ **cmd**  ​
-  * **h<​port>​** - принятые данные в символьном hex-формате,​ где port - номер последовательного контроллера. Пример:​ ''&​h1:​3132330D<​cr>​''​ означает,​ что в serial port 1 контроллера поступила последовательность байт ''​31 32 33 0D''​. ​+  * **h<​port>​** - принятые данные в символьном hex-формате,​ где port - номер последовательного контроллера ​(1-9). Пример:​ ''&​h13132330D''​ означает,​ что в serial port 1 контроллера поступила последовательность байт ''​31 32 33 0D''​. ​
   * **b<​port>​** - принятые данные в bin-формате. Кодировка символов аналогична.   * **b<​port>​** - принятые данные в bin-формате. Кодировка символов аналогична.
  
 +Отправка h и b контроллером происходит при выполнении одного из следующих условий:​
 +  * на вход serial поступали данные после чего в течение времени,​ 20мс, данные не поступают (состояние idle).
 +  * на вход serial поступило MaxReplySize байт, где MaxReplySize по умолчанию равно 1000.
  
-  ​+Если к устройству подключено несколько клиентов,​ то данные,​ полученные из COM порта передаются всем в базовом режиме и всем, подключенным к определенному порту, в режиме mirror.  
 + 
 +Способ кодирования данных,​ полученных из COM в базовом режиме,​ соответствует последней команде запроса на соответствующий порт. Если последний запрос был выполнен командой &h, то все данные будут в этом формате,​ пока не придет ​ запрос &b. Если с момента включения запросов не приходило,​ то считаем,​ что порт в режиме &h.
   ​   ​
 ==== Режим Init ==== ==== Режим Init ====
  
 При включении контроллера в режиме init вступают в силу следующие параметры:​ При включении контроллера в режиме init вступают в силу следующие параметры:​
-  * mask = 255.255.255.0 +  * mask = 255.255.0.0 
-  * ip = 192.168.0.90 +  * ip = 192.168.255.1 
-  * port = 3070+  * port = 4000 
 + 
 +==== Режим Mirror ==== 
 +TCP порты 5001..5008 соответствуют портам COM2-COM9, любые данные до 1000 символов прозрачно,​ без изменений передаются в обоих направлениях. ​
  
 +Порт COM1 используется для программирования.
 +==== Карта памяти ====
 +Блоки по 5 байт
 +1.IP (4 из 5)
 +2.Mask (4 из 5)
 +3.Gate (4 из 5)
 +4.Port (5 из 5)
 +5.CRC  (1 из 5)
 +6.MaxReply ​ (2 из 5)
 +7.COM1 (4 из 5)
 +8.COM2 (4 из 5)
 +9.COM3 (4 из 5)
 +10.COM4 (4 из 5)
 +11.COM5 (4 из 5)
 +12.COM6 (4 из 5)
 +13.COM7 (4 из 5)
 +14.COM8 (4 из 5)
 +15.COM9 (4 из 5)
doc/sertoeth7188ex/main.1368695253.txt.gz · Последние изменения: 2013/05/16 13:07 — jamis7005
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0