====== Конвертер serial-to-ethernet на базе uPAC-7188EX ====== ===== Индикация ===== Контроллер имеет 5 семисегментных индикаторов. Каждый из индикаторов индицирует работу одного последовательного порта, нумерация слева направо. Используются только горизонтальные сегменты: - **верхний** - запись в serial порт - **средний** - прием из serial порта - **нижний** - отправка tcp-клиенту ===== Протокол обмена ===== ==== outcoming requests ==== &[параметры][данные][] **&** - маркер начала посылки **cmd** - команда * **h** - запись в порт в символьном hex-формате, где port - номер последовательного контроллера (от 1 до 9). Пример: ''&h13132330D'' отправка в serial последовательности байт ''31 32 33 0D''. * **b** - запись в порт в символьном bin-формате. Кодировка символов данных: & --> \a \ --> \\ #10 --> \r #13 --> \n остальные символы идут как есть. Пример: ''&b1:Ampersand-\a. Backslash-\\.\r'' отправка в serial строки ''Ampersand-&. Backslash-\.''. * **t ** - установка tcp-порта в память, пример: ''&t 3070'' * **i
** - установка ip в память, пример: ''&i 192.168.0.55'' * **m ** - установка маски в память, пример: ''&m 255.255.255.0'' * **g <шлюз>** - установка шлюза в память, пример: ''&g 192.168.255.10'' * **p <параметры>** - параметры последовательного порта = 4 символа: - baud (по умолчанию **C8N1**): 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 - data bits: **8** или 7 - parity (по умолчанию **N**): N - NONE E - EVEN O - ODD M - MARK S - SPACE - stop bits: **1** или 2 * **x** - рестарт, пример: ''&x'' Команды начинаются от &, далее считываются параметры команды, затем данные, прием данных ограничивается , концом передачи или 1000 символов (максимально возможный объем буфера) в зависимости от того, что наступит ранее. __Внимание! Параметры команд идут через пробел за именем команды (исключения команды b и h)__. В случае прихода команд на изменение адреса, полученные данные сохраняются в память, но работать не начинают. Для применения новых настроек необходимо перезагрузить ПЛК. При первом старте рекомендуется включать режим Init для первоначальной установки параметров в памяти. При работе необходимо режим Init отключать. В случае режима Init из памяти загружаются не сохраненные данные, а параметры по умолчанию. Смена параметров происходит только в момент загрузки, в процессе работы флаг не проверяется. В режиме Init возможно странное поведение TCP части контроллера т.к. в этот момент контроллер работает и по заводскому адресу 192.168.255.1:10000. Все установочные значения сохраняются в eeprom контроллера (см карту памяти). **data** - данные **** - маркер конца посылки (#10). если его в посылке нет, то концом считается - конец передачи. если есть, то конец посылки считается равным ему, остальное отбрасывается. ==== incoming requests ==== &[] **cmd** * **h** - принятые данные в символьном hex-формате, где port - номер последовательного контроллера (1-9). Пример: ''&h13132330D'' означает, что в serial port 1 контроллера поступила последовательность байт ''31 32 33 0D''. * **b** - принятые данные в bin-формате. Кодировка символов аналогична. Отправка h и b контроллером происходит при выполнении одного из следующих условий: * на вход serial поступали данные после чего в течение времени, 20мс, данные не поступают (состояние idle). * на вход serial поступило MaxReplySize байт, где MaxReplySize по умолчанию равно 1000. Если к устройству подключено несколько клиентов, то данные, полученные из COM порта передаются всем в базовом режиме и всем, подключенным к определенному порту, в режиме mirror. Способ кодирования данных, полученных из COM в базовом режиме, соответствует последней команде запроса на соответствующий порт. Если последний запрос был выполнен командой &h, то все данные будут в этом формате, пока не придет запрос &b. Если с момента включения запросов не приходило, то считаем, что порт в режиме &h. ==== Режим Init ==== При включении контроллера в режиме init вступают в силу следующие параметры: * mask = 255.255.0.0 * ip = 192.168.255.1 * 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)