Стартовая страница › Форумы › Взаимодействие с устройствами › OPC › ОРС-сервер Карат
- В этой теме 16 ответов, 4 участника, последнее обновление 3 года, 7 месяцев назад сделано Mikhail.
-
АвторСообщения
-
21.09.2020 в 11:40 #17270Andrew174Участник
Добрый день!
Появилась необходимость опроса теплосчетчиков КАРАТ-306. По информации техподдержки НПП Уралтехнология, в теплосчетчиках реализован не только «фирменный» modbus- подобный протокол Карат, но и классический Modbus-RTU.
Выдержку из документа «Протокол передачи данных ModBus307 для приборов Карат-306, Карат-307, Карат-308» привожу ниже:5 Регистры для считывания мгновенных значений по одному (с
доступом к каждому отдельному регистру и к группам регистров).
Для широкого круга ОРС серверов
Регистры удобно использовать для работы с ОРС серверами
сторонних производителей, для работы с любыми SCADA системами.
Внимание, регистры доступны только для приборов начиная с 2016
года выпуска.
5.1 Текущие (мгновенные) значения объемного расхода с доступом
к каждому значению по своему регистру (регистры 0х1100-0x110F)
В этих регистрах содержатся 16 логических каналов прибора с
текущими (мгновенными) значениями объемного расхода. С их помощью
можно считать объем с каждого логического канала по отдельности, по
одному. Так же возможно считывание каналов группами.
Импульсный вход
Название параметра
Адрес регистра Размер, байт
Канал f1 0х1100 4 (float)
Канал f2 0х1102 4 (float)
Канал f3 0х1104 4 (float)
Канал f4 0х1106
4 (float)
Канал f5 0х1108
4 (float)
Канал f6 0х110A
4 (float)
Канал f7 0х110C
4 (float)
Канал f8 0х110E
4 (float)
Канал f9 0х1110
4 (float) Канал f10 0х1112
4 (float)
Канал f11 0х1114
4 (float)
Канал f12 0х1116
4 (float)
Канал f13 0х1118
4 (float)
Канал f14 0х111A
4 (float)
Канал f15 0х111C
4 (float)
Канал f16 0х111E
4 (float)
Пояснение: допустим в приборе настроены два канала расхода V1 (на
канале f1) и V2 (на канале f2), тогда необходимо опросить два регистра
по отдельности, 0х1100 и 0х1102, чтобы считать значения текущего
расхода по этим каналам. Либо можно, задав начальный адрес 0х1100 и
необходимое количество регистров для чтения считать 2 и более
регистра за один запрос.5.2 Текущие (мгновенные) значения температуры с доступом к
каждому значению по своему регистру (регистры 0х1110-0x111F)
В этих регистрах содержатся 16 логических каналов прибора с
текущими (мгновенными) значениями температуры. С их помощью
можно считать температуру с каждого логического канала по
отдельности, по одному. Так же возможно считывание каналов группами.
Температуры
Название параметра
Адрес регистра Размер, байт
Канал t1 0х1120 4 (float)
Канал t2 0х1122 4 (float)
Канал t3 0х1124 4 (float) Канал t4 0х1126
4 (float)
Канал t5 0х1128
4 (float)
Канал t6 0х112A
4 (float)
Канал t7 0х112C
4 (float)
Канал t8 0х112E
4 (float)
Канал t9 0х1130
4 (float)
Канал t10 0х1132
4 (float)
Канал t11 0х1134
4 (float)
Канал t12 0х1136
4 (float)
Канал t13 0х1138
4 (float)
Канал t14 0х113A
4 (float)
Канал t15 0х113C
4 (float)
Канал t16 0х113E
4 (float)5.3 Текущие (мгновенные) значения давлений с доступом к каждому
значению по своему регистру (регистры 0х1120-0x112F)
В этих регистрах содержатся 16 логических каналов прибора с
текущими (мгновенными) значениями давления. С их помощью можно
считать давления с каждого логического канала по отдельности, по
одному. Так же возможно считывание каналов группами.
Давления
Название параметра
Адрес регистра Размер, байт Канал p1 0х1140 4 (float)
Канал p2 0х1142 4 (float)
Канал p3 0х1144 4 (float)
Канал p4 0х1146
4 (float)
Канал p5 0х1148
4 (float)
Канал p6 0х114A
4 (float)
Канал p7 0х114C
4 (float)
Канал p8 0х114E
4 (float)
Канал p9 0х1150
4 (float)
Канал p10 0х1152
4 (float)
Канал p11 0х1154
4 (float)
Канал p12 0х1156
4 (float)
Канал p13 0х1158
4 (float)
Канал p14 0х115A
4 (float)
Канал p15 0х115C
4 (float)
Канал p16 0х115E
4 (float)5.4 Текущие (мгновенные) значения масс с доступом к каждому
значению по своему регистру (регистры 0х1130-0x113F)
В этих регистрах содержатся 16 логических каналов прибора с
текущими (мгновенными) значениями массы. С их помощью можно считать массы с каждого логического канала по отдельности, по одному.
Так же возможно считывание каналов группами.
Массы
Название параметра
Адрес регистра Размер, байт
Канал g1 0х1160 4 (float)
Канал g2 0х1162 4 (float)
Канал g3 0х1164 4 (float)
Канал g4 0х1166
4 (float)
Канал g5 0х1168
4 (float)
Канал g6 0х116A
4 (float)
Канал g7 0х116C
4 (float)
Канал g8 0х116E
4 (float)
Канал g9 0х1170
4 (float)
Канал g10 0х1172
4 (float)
Канал g11 0х1174
4 (float)
Канал g12 0х1176
4 (float)
Канал g13 0х1178
4 (float)
Канал g14 0х117A
4 (float)
Канал g15 0х117C
4 (float)
Канал g16 0х117E
4 (float)
5.5 Текущие (мгновенные) значения тепловой энергии с доступом к
каждому значению по своему регистру (регистры 0х1140-0x114F)
В этих регистрах содержатся 16 логических каналов прибора с
текущими (мгновенными) значениями тепловой энергии. С их помощью
можно считать тепловую энергию с каждого логического канала по
отдельности, по одному. Так же возможно считывание каналов группами.
Тепловая энергия
Название параметра
Адрес регистра Размер, байт
Канал q1 0х1180 4 (float)
Канал q2 0х1182 4 (float)
Канал q3 0х1184 4 (float)
Канал q4 0х1186
4 (float)
Канал q5 0х1188
4 (float)
Канал q6 0х118A
4 (float)
Канал q7 0х118C
4 (float)
Канал q8 0х118E
4 (float)
Канал q9 0х1190
4 (float)
Канал q10 0х1192
4 (float)
Канал q11 0х1194
4 (float)
Канал q12 0х1196
4 (float)
Канал q13 0х1198
4 (float)
Канал q14 0х119A
4 (float) Канал q15 0х119C
4 (float)
Канал q16 0х119E
4 (float)6. Регистры для считывания интегральных значений по одному (с
доступом к каждому отдельному регистру и к группам регистров).
Для широкого круга ОРС серверов.
Регистры удобно использовать для работы с ОРС серверами
сторонних производителей, для работы с какими-либо SCADA
системами.
Интегральные значения, как и последние значения в интегральном
архиве прибора обновляются раз в час. То же относится и ко всем
остальным параметрам в этих регистрах.
Структура регистров отличается от структуры регистров
мгновенных значений. В регистрах содержатся до 55-ти 4-х байтных
значений архивируемых параметров прибора. С их помощью можно
считать параметры, находящиеся во всех подсистемах прибора.
Параметры, не вошедшие в подсистемы прибора считать, используя эти
регистры, невозможно.
Кроме интегральных значений для V, G, Q в этих регистрах так же
могут находиться архивируемые значения для Т и Р, а так же времена
Тmin, Tmax, Tdt и прочие, + ошибки и наработка прибора.
Значения V, G, Q, T, P идут во float.
Значения Тmin, Tmax, Tdt и прочие, + ошибки и наработка прибора
идут в long.
Порядковый
номер параметра
Адрес регистра Размер, байт
1 0х1300 4 (float)
2 0х1302 4 (float либо long)
3 0х1304 4 (float либо long)
4 0х1306 4 (float либо long)
5 0х1308 4 (float либо long)
6 0х130A 4 (float либо long) 7 0х130C 4 (float либо long)
8 0х130E 4 (float либо long)
9 0х1310 4 (float либо long)
10 0х1312 4 (float либо long)
11 0х1314 4 (float либо long)
12 0х1316 4 (float либо long)
13 0х1318 4 (float либо long)
14 0х131A 4 (float либо long)
15 0х131C 4 (float либо long)
16 0х131E 4 (float либо long)
17 0х1320 4 (float либо long)
18 0х1322 4 (float либо long)
19 0х1324 4 (float либо long)
20 0х1326 4 (float либо long)
21 0х1328 4 (float либо long)
22 0х132A 4 (float либо long)
23 0х132C 4 (float либо long)
24 0х132E 4 (float либо long)
25 0х1330 4 (float либо long) 26 0х1332 4 (float либо long)
27 0х1334 4 (float либо long)
28 0х1336 4 (float либо long)
29 0х1338 4 (float либо long)
30 0х133A 4 (float либо long)
31 0х133C 4 (float либо long)
32 0х133E 4 (float либо long)
33 0х1340 4 (float либо long)
34 0х1342 4 (float либо long)
35 0х1344 4 (float либо long)
36 0х1346 4 (float либо long)
37 0х1348 4 (float либо long)
38 0х134A 4 (float либо long)
39 0х134C 4 (float либо long)
40 0х134E 4 (float либо long)
41 0х1350 4 (float либо long)
42 0х1352 4 (float либо long)
43 0х1354 4 (float либо long)
44 0х1356 4 (float либо long) 45 0х1358 4 (float либо long)
46 0х135A 4 (float либо long)
47 0х135C 4 (float либо long)
48 0х135E 4 (float либо long)
49 0х1360 4 (float либо long)
50 0х1362 4 (float либо long)
51 0х1364 4 (float либо long)
52 0х1366 4 (float либо long)
53 0х1368 4 (float либо long)
54 0х136A 4 (float либо long)
55 0х136C 4 (float либо long)
Пояснение: допустим в приборе настроены для архивирования
(добавлены в подсистему) только два канала расхода V1 и V2, тогда
необходимо опросить два регистра по отдельности, 0х1300 и 0х1302,
чтобы считать значения интегрального расхода по этим каналам. Либо
можно, задав начальный адрес 0х1300 и необходимое количество
регистров для чтения считать 2 и более регистра за один запрос.
Описание конфигурации архивной записи можно более подробно
найти в описании регистра 0x0106.Внимание, т.к. разные ОРС серверы и разные системы по разному
воспринимают порядок байт во float, в приборах есть настройка порядка
байт, пересылаемых по интерфейсу (актуально для раздела 5). Делается
настройка путем подключения прибора к ПК, и его конфигурирования
программой “Карат Конфигуратор”. Если работая по таблицам раздела 5
вам не удается считать то значение, которое отображает прибор, то
необходимо попробовать следующее.
В программе Карат Конфигуратор нажать комбинацию клавиш
“Alt” + “F” (раскладка клавиатуры должна быть английская). Должно
появиться следующее окно (до этого конфигуратор и прибор должны
быть настроены на одну и ту же скорость обмена, должен быть выбран
СОМ порт, к которому подключен прибор, прибор должен быть
переведен в режим ТЕСТ):После нажатия на клавишу “Да” будет представлен выбор из
четырех вариантов:0123
1032
3210
2301
Необходимо установить подходящий вам вариант.
Приложение 1. Пример организации чтения архивов (почасовой,
посуточный, помесячный, помесячный интегральный) из приборов
Карат-306, 307, 308.
Возможный алгоритм чтения архивов из приборов: 1. Определение типа прибора — желательно. Регистр 0x708
2. Чтение даты и времени из прибора — желательно. Регистр 0x0062
3. Чтение заводского номера — желательно. Регистр 0x0101
4. Чтение конфигурации архивов — обязательно, чтобы знать, где какой параметр лежит в
архиве ! Регистр 0x0106
5. Чтение необходимых архивов — обязательно ! (Набор регистров)
Разберем этот алгоритм подробнее:
1. Регистр 0x708
// >> 01 03 07 08 00 01 04 BC Пример запрос
// << 01 03 02 D5 00 E6 D4 Пример ответ
(00D5 = 213, т.е. в данном примере прибор КАРАТ-Компакт 213)
2. Регистр 0x0062
// >> 01 03 00 62 00 01 2E 14 Пример запрос
// << 01 03 08 26 1E 17 1E 06 09 E1 07 9B D9 Пример ответ
3. Регистр 0x0101.
// >> 00 03 01 01 00 04 15 e4
// << 00 03 36 01 30 30 30 31 31 31 31 36 00 80 09 45 00 80 22 45 66 66 54 42 66 66 54 42 66 66
54 42 66 66 54 42 66 66 54 42 66 66 54 42 01 f0 0b 36 13 0e 0b 10 05 04 04 d6 32 da 93
(номер прибора 00011116)
4. Регистр 0x0106, читаем этот регистр, затем разбираем, где какой параметр будет лежать
при запросе архивов.
// >> 00 03 01 06 00 01 64 26
// << 00 03 38 01 10 11 12 13 14 30 31 32 33 34 35 40 41 42 43 d1 d2 d3 d4 d5 c0 b0 ff 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 b1
Пример расшифровки: v1 v2 v3 v4 v5 t1 t2 t3 t4 t5 t6 p1 p2 p3 p4 Tmin Tmax Tdt
Tf Tep Ошибки Наработки Конец всех подсистем
5. Чтение архивов.
Для чтения архива сначала необходимо записать в прибор дату время требуемого архива,
регистр 0x0060:
// >> 01 10 00 60 00 02 04 11 09 0B 10 26 45
// << 01 10 00 60 00 02 41 D6 Далее читаем запись с этой датой временем, пример для почасового архива, регистр 0x0000:
// >> 01 03 00 00 00 01 84 0A
// << 01 03 F0 01 00 C7 00 08 00 00 00 00 00 02 00 01 3B 11 09 0B 10 FB FF 7F 40 F9 FF 3F 40
00 00 A0 42 00 00 48 42 00 00 C0 40 00 00 80 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 …….
Далее, если это нужно, читаем записи почасового архива с инкрементом от только что
считанной записи, регистр 0x0005, повторяя этот запрос можно дойти до самой свежей
записи в архиве.
// >> 01 03 00 05 00 78 55 E9
// << 01 03 F0 01 00 C8 00 08 00 00 00 00 00 02 00 01 3B 12 09 0B 10 FB FF 7F 40 F9 FF 3F 40
00 00 A0 42 00 00 48 42 00 00 C0 40 00 00 80 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 …….
Так можно считать любой необходимый архив: почасовой, посуточный, помесячный,
помесячный интегральный (используя необходимые для их чтения регистры).21.09.2020 в 15:50 #17274 -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.