PDA

Просмотр полной версии : Связь СПК207.03.WEB и ТРМ232М



distren
05.04.2018, 16:42
Здравствуйте!
Никак не могу считать с ТРМ232М хоть какие-то данные.
Работаю в CDS 3.5 SP5 P5, версия таргета 26.
Если связываться с ТРМ через конфигуратор, Связь есть, но данные на считываются (Серые 0)
Через библиотеку SysCom тоже не читает.Не получается прочитать даже один вход с ТРМ.

Подскажите, пожалуйста, как прочитать данные с ТРМ.А мне надо не только читать и выводить на экран, но и записывать в ТРМ уставки.

Вырезка из кода опроса:
VAR
TRM232m_RdIN: MB_RD_HOLD_REGS; // ФБ опроса ТРМ232М
abyBuf_TRM232_RdIN: ARRAY [0..255] OF BYTE; // Буфер ФБ опроса
abyBuf_TRM232_DataIN: ARRAY [0..255] OF BYTE; // Буфер данных, считанных
END_VAR
// [1] настраиваем COM-порт
Settings_COM2.sPort:=3;
Settings_COM2.byStopBits:=1;
Settings_COM2.byParity:=0;
Settings_COM2.ulBaudrate:=115200;
Settings_COM2.ulTimeout:=0;
Settings_COM2.ulBufferSize:=0;

SettingsEX_COM2.byByteSize:=8;
******
TRM232m_RdIN
(
Enable:=COM_Service_COM2.Ready,
Mode:=MB_RTU,
DevAddr:=16,
FirstAddr:=16#18,
Quantity:=2,
ComHandle:=COM_Service_COM2.handle,
TimeOut:=T#1000MS,
Buffer:=abyBufferST1,
);

// [4] если ФБ опроса модуля завершил работу...
IF TRM232m_RdIN.Complete THEN
// ...и ошибки отсутствуют, то забираем буфер модуля
IF TRM232m_RdIN.Exception=0 THEN
abyBuf_TRM232_DataIN:=abyBuf_TRM232_RdIN;
буфер пустой.


Спасибо.

Ильнур Гибадуллин
05.04.2018, 17:06
Здравствуйте!
Никак не могу считать с ТРМ232М хоть какие-то данные.
Работаю в CDS 3.5 SP5 P5, версия таргета 26.
Если связываться с ТРМ через конфигуратор, Связь есть, но данные на считываются (Серые 0)
Через библиотеку SysCom тоже не читает.Не получается прочитать даже один вход с ТРМ.

Подскажите, пожалуйста, как прочитать данные с ТРМ.А мне надо не только читать и выводить на экран, но и записывать в ТРМ уставки.

Вырезка из кода опроса:
VAR
TRM232m_RdIN: MB_RD_HOLD_REGS; // ФБ опроса ТРМ232М
abyBuf_TRM232_RdIN: ARRAY [0..255] OF BYTE; // Буфер ФБ опроса
abyBuf_TRM232_DataIN: ARRAY [0..255] OF BYTE; // Буфер данных, считанных
END_VAR
// [1] настраиваем COM-порт
Settings_COM2.sPort:=3;
Settings_COM2.byStopBits:=1;
Settings_COM2.byParity:=0;
Settings_COM2.ulBaudrate:=115200;
Settings_COM2.ulTimeout:=0;
Settings_COM2.ulBufferSize:=0;

SettingsEX_COM2.byByteSize:=8;
******
TRM232m_RdIN
(
Enable:=COM_Service_COM2.Ready,
Mode:=MB_RTU,
DevAddr:=16,
FirstAddr:=16#18,
Quantity:=2,
ComHandle:=COM_Service_COM2.handle,
TimeOut:=T#1000MS,
Buffer:=abyBufferST1,
);

// [4] если ФБ опроса модуля завершил работу...
IF TRM232m_RdIN.Complete THEN
// ...и ошибки отсутствуют, то забираем буфер модуля
IF TRM232m_RdIN.Exception=0 THEN
abyBuf_TRM232_DataIN:=abyBuf_TRM232_RdIN;
буфер пустой.


Спасибо.

Здравствуйте!

Пробовали Вы считать параметры ТРМ232М OPC сервером?

Какие сетевые настройки имеет ТРМ, есть подозрение, что неверно указан протокол передачи данных.

distren
06.04.2018, 10:20
Протокол Modbus RTU. Настройки стандартные, ничего не меняли. Скорость 115200.
OPC сервером Lectus смотрели.Кстати, при опросе тоже интересные вещи были.
36473 При такой структуре опрос идет корректно (опрашиваются первые три аналоговых входа)

Если опрашивать 2 датчика подряд, данные то корявые, то нормальные.Если через один, то все нормально.
36476

Если добавить третий датчик для опроса то связь теряется вообще.Период опроса 1 сек у всех. Если время опроса изменить каждой переменной, тогда связь попеременно пропадает-проявляется.
36477

Скорости меняли.Ситуацию не изменило.
В ТРМ232М нет выбора протокола, похоже , что он автоматически определяется. Ну, по крайней мере, в инструкции нет описания изменения протокола передачи.

Ильнур Гибадуллин
06.04.2018, 12:15
Протокол Modbus RTU. Настройки стандартные, ничего не меняли. Скорость 115200.
OPC сервером Lectus смотрели.Кстати, при опросе тоже интересные вещи были.
36473 При такой структуре опрос идет корректно (опрашиваются первые три аналоговых входа)

Если опрашивать 2 датчика подряд, данные то корявые, то нормальные.Если через один, то все нормально.
36476

Если добавить третий датчик для опроса то связь теряется вообще.Период опроса 1 сек у всех. Если время опроса изменить каждой переменной, тогда связь попеременно пропадает-проявляется.
36477

Скорости меняли.Ситуацию не изменило.
В ТРМ232М нет выбора протокола, похоже , что он автоматически определяется. Ну, по крайней мере, в инструкции нет описания изменения протокола передачи.

ТРМ232М не поддерживает групповой опрос данных.

По поводу связи СПК и ТРМ - можете, пожалуйста, приложить архив проекта на СПК: Файл -> Архив проекта -> Сохранить/отправить архив. Я посмотрю и дам рекомендации по наладке связи.

Еще вопрос - не пробовали настроить опрос через встроенный компонент Modbus?

distren
06.04.2018, 13:30
С этого и начали, связь вроде есть, но никаких значений не приходит (серые 0)
Конечно, хотелось бы использовать встроенную компоненту.

Поэтому и пал выбор на библиотеку. Ибо опыт работы с ней был.

Кстати, нашли косяк в программе: буфер не тот: "Buffer:=abyBufferST1,", а потом обрабатываю abyBuf_TRM232_RdIN.
И вроде все три опрашивает, правда, пока невменяемые значения выдает.

проект все равно вышлю, будет здорово, если Вы мне подскажите со встроенной компонентой, где ошибка

Ильнур Гибадуллин
06.04.2018, 13:47
С этого и начали, связь вроде есть, но никаких значений не приходит (серые 0)
Конечно, хотелось бы использовать встроенную компоненту.

Поэтому и пал выбор на библиотеку. Ибо опыт работы с ней был.

Кстати, нашли косяк в программе: буфер не тот: "Buffer:=abyBufferST1,", а потом обрабатываю abyBuf_TRM232_RdIN.
И вроде все три опрашивает, правда, пока невменяемые значения выдает.

проект все равно вышлю, будет здорово, если Вы мне подскажите со встроенной компонентой, где ошибка

Если значения не обновлялись, то, скорее всего, проблема заключалась в параметре Всегда обновлять переменные во вкладке Соотнесение входов/выходов, необходимо выставить Включено 2 (Всегда в задаче цикла шины).

По поводу невменяемых значений - не пробовали менять местами старшее и младшее слово/байт?

distren
06.04.2018, 14:05
уже.))) Теперь все, нормально читается.
С компонентой спасибо именно эта проблема и была.
Спасибо большое за помощь.