Не получается опросить устройство считывающее данные с термоподвесок. Необходимо отправить запрос типа 1Ah 30h 32h 31h 32h 30h 39h 30h 35h 32h 33h 3Fh 0D 0A , не могу найти где это прописывать в орс сервере. Помогите люди добрые) Имеется описание протокола:
Код HTML:
1.1. Структура посылки команды от ЭВМ к БИ для измерения температуры датчика
1Ah<десятки номера силкорпуса><единицы номера силкорпуса><десятки номера шкафа><единицы номера шкафа><десятки номера подвески><единицы номера подвески><десятки номера датчика><единицы номера датчика><тип подвески><MSB_ CRC><LSB_CRC><CR><LF>
Где:
1Ah – (HEX) метка распознавания посылки команды для измерения температуры датчика
Все следующие за этой меткой байты кроме 2х байт CRC передают в ASCII формате, те. 0=30h, 1=31h, 2=32h … 9=39h.
<тип подвески>- если подвеска 50 Ом то передаём – 31h, 53 Ом – 32h, цифровая – 33h,
50 Ом(Ж) – 34h, 53 Ом(Ж) – 35h.
<CR><LF> – конец события в шестнадцатиричном виде имеют значения <0D> и <0A>
<MSB_ CRC>, <LSB_CRC> – контрольная сумма формируется следующим образом:
1. Считается 8-ми битовая сумма (XOR) ASCII всех символов посылки кроме: метки распознавания , байт самой контрольной суммы и конца события <CR><LF>
2. Берём старшую тетраду этой суммы и складываем с 30h, получаем <MSB_ CRC>
3. Берём младшую тетраду этой суммы и складываем с 30h, получаем <LSB_ CRC>
Пример: получили CRC = 2Ah. После преобразования 32h, 3Ah
Пример посылки: передадим команду на измерение 2 силкорпус, 12 шкаф, 9 подвеска, 5 датчик, подвеска 53 Ом.
Посылка имеет вид: 1Ah 30h 32h 31h 32h 30h 39h 30h 35h 32h 33h 3Fh 0D 0A
1.2. Структура посылки команды от ЭВМ к БИ для измерения уровня
1Eh<десятки номера силкорпуса><единицы номера силкорпуса><десятки номера шкафа><единицы номера шкафа><десятки номера подвески><единицы номера подвески><MSB_ CRC><LSB_CRC><CR><LF>
1.3. Структура посылки ответа от БИ К ЭВМ следующая 1Ch <8 байт ASCII коды ответа><MSB_ CRC><LSB_CRC><CR><LF>, если ответ меньше 8 байт то оставшиеся байты забиваем пробелом (20h)
1.3.1. Если посылка от ЭВМ принята без ошибки, то БИ отвечает:
1Ch <OK! ><MSB_ CRC><LSB_CRC><CR><LF>, ЭВМ её принимает и переходит к ожиданию основного ответа. Время ожидания для всех ответов не более 5 сек. Если время вышло ЭВМ повторно выдаёт команду к БИ, максимальное кол-во повторов в случае ошибки =3, если не прошло то в данную ячейку температуры или уровня пишется «ошибка2»
1.3.2. Ответ БИ по температуре, пример:
1Ch <T=+123.7><MSB_ CRC><LSB_CRC><CR><LF> или 1Ch <T=-23.7 ><MSB_ CRC><LSB_CRC><CR><LF> или 1Ch <T=К.З ><MSB_ CRC><LSB_CRC><CR><LF> или 1Ch <T=ОБРЫВ ><MSB_ CRC><LSB_CRC><CR><LF>
1.3.3. Ответ БИ по уровню, пример: 1Ch <H=23.78 ><MSB_ CRC><LSB_CRC><CR><LF> или 1Ch <H=ОШИБКА><MSB_ CRC><LSB_CRC><CR><LF>
1. Если в ответе не совпадает посчитанный и принятый CRC, в этом случае ЭВМ повторно выдаёт команду к БИ, максимальное кол-во повторов в случае ошибки =3, если не прошло, то в данную ячейку температуры или уровня пишется «ошибка3»
2. В ответах БИ только слова «ОШИБКА», «ОБРЫВ», «К.З.» в русском регистре
1.4. Структура посылки команды на получение сведений о системе передаёт ЭВМ:
1Dh <COM01><MSB_ CRC>, <LSB_CRC><CR><LF>
1.5. Структура ответа на команду п.7.5. :
1Dh<ASCII текстовая строка> <*><MSB_ CRC>, <LSB_CRC><CR><LF>
Если не получаем ответа в течении 5 сек с первой попытки , то делаем повторную попытку, после третьей попытки на экране монитора выскакивает жирная надпись «НЕПОЛАДКИ В СИСТЕМЕ» и начинает мигать красным. Для прекращения мигания надписи нажимаем «enter»
1.6. Алгоритм функционирования протокола:
Алгоритм работает по принципу: один запрос – один ответ
Запросы всегда отдаёт ЭВМ
ЭВМ – всегда ВЕДУЩИЙ, БИ – ВЕДОМЫЙ
Ведущий дал запрос – ведомый должен выдать один ответ через min 0,1 сек max через 5 сек, иначе – ошибка