Меню
+7 (495) 785-95-25
sale@lcard.ru
sale@lcard.ru
единственное отличие в параметрах конфигурации порта, я увидел это
hLtr43.RS485.Parity = 0; // Проверка четности отключенау нас в этом параметре 1
// Функция вычисляет CRC для протокола MODBUS
unsigned short CalculateModbusCRC(short *data, int datasize)
{
unsigned char uchCRCHi = 0xFF;
unsigned char uchCRCLo = 0xFF;
unsigned char uIndex;
while(datasize--)
{
uIndex = uchCRCHi ^ *data++; /* calculate the CRC */
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo = auchCRCLo[uIndex];
}
return (uchCRCHi << 8 | uchCRCLo);
} // Настройки портов ввода-вывода
FLTR43->IO_Ports.Port1 = 0;
FLTR43->IO_Ports.Port2 = 0;
FLTR43->IO_Ports.Port3 = 0;
FLTR43->IO_Ports.Port4 = 0;
// Определяем режимы формирования меток
FLTR43->Marks.SecondMark_Mode = 0;
FLTR43->Marks.StartMark_Mode = 0;
// Настройки интерфейса RS-485
FLTR43->RS485.FrameSize = 8;
FLTR43->RS485.Baud = 115200;
FLTR43->RS485.StopBit = 0;
FLTR43->RS485.Parity = 1;//0;
FLTR43->RS485.SendTimeoutMultiplier = 10;
FLTR43->RS485.ReceiveTimeoutMultiplier = 20;вот видео процесса, файл большой поэтому ссылкой на мой диск
https://disk.yandex.ru/i/6mgyD2jKn4zL5A
Попробуйте консольную утилиту. В архиве находятся исходные тексты и самые свежие версии библиотек Ltrapi.dll и Ltr43api.dll. Данная утилита тупо фиксирует только статус выполнения штатной функции LTR43_RS485_Exchange() для всех доступных регистров.
сейчас сделаем
Добрый день, у нас в понедельник сдача установки, а старых крейтов больше нет ....
А какой именно у Вас DEVICE_ADDRESS?
#define DEVICE_ADRESS 1 // адрес ведомого устройства(ПЛК)
#define PACKET_SIZE 8 // Размер пакета в байтах
я все таки не могу понять, почему мы можем читать регистры в которых лежат значения температур, а регистры состояний при чтении получаем ошибку -4023
Замена библиотек на новые не помогла, исправление в коде расчета CRC тоже, ошибка прежняя -4023
ситуация следующая, если использовать только старые библиотеки то ltr43 работает, ltr11 при конфигурации выдает ошибку, но дальше работает (подозреваю что с дефолтной конфигурацией).
если заменить только ltr11api.dll то приложение падает молча, если подкинуть еще ltrapi.dll падает с Abnormal program termination
так что от вас требуется починить либо ltr11api.dll для нового ltr11, либо в новых библиотеках починить ltr43api.dll
серийники крейтов
новый 6T777689
старый 6T769623
Т.е. если заменить только библиотеку ltr11api и ltrapi, но не заменять билиотеку ltr43api, то работает и на новом крейте с новым модулем?
Это еще не проверили, в процессе.
А если с новым крейтом на 2.0.0.0 и новым модулем и новой билиотекой?
нет, старый крейт проверяли со старыми либами
И старый модуль в новом крейте заработал у Вас тогда именно с новой библиотекой?
судя по всему тоже со старыми либами проверяли, только сейчас обратил внимание что в логе LTR11 не инициализировался в новом крейте
И можете написать серийные номера старого и новго LTR43 и крейта?
сейчас как дозвонюсь до своих, попрошу чтобы сделали.
Кажется картина начала вырисовываться, сейчас к новому крейту подключились в старой версии программы со старыми библиотеками, в итоге LTR11 ожидаемо не запустилась, а LTR43 заработала. Так что проблема в библиотеке похоже ...
по экспериментам, нашли вчера старый крейт с прошивкой 2.0, что самое интересное, так это то что новая плата ltr43 в старом крейте работает, но и старая плата ltr43 в новом крейте работает, но если вернуть новую плату ltr43 обратно в новый крейт не работает. Вы там черной магией занимаетесь ?
А библиотеку Вы тоже обновили на последнюю как и с LTR11?
конечно же
@ Алексей L Card, вы можете чаще одного раза в день отвечать, просто у нас уже достаточно критическая ситуация, и старых крейтов больше нет, чтобы следующую отгрузку прикрыть. Может нам с Вами в ТГ или Максе списаться, чтобы более оперативно можно было общаться?
Да, все тесты на одном пк и одной установке, меняем только крейт. Про замену модуля в крейте даже не подумал. Сейчас проблематично будет сделать, ибо был только один старый крейт, он позавчера уехал с установкой заказчику, было принято такое решение чтобы заказ не срывать. Но сейчас подумаем, что может удастся что-то придумать.
EnableModbusWork это просто флаг блокировки запуска/инициализации Modbus пока не выполнены все условия.
И какая версия прошивки второго крейта (отображается в LTR Manger, на скрине у Вас 3.0.0.17 - это на сколько я понимаю новый?)
да это новый, у нас остались только они.
спасибо, попробуем
может его прошить надо, но на сайте прошивка только версии 2.0, а на гите не нашел прошивок
Новый: версия 2.2. дата прошивки: 03.03.21
Старый: версия 2.3. дата прошивки 28.07.22
1. Можете проверить версию прошивки LTR43 там где работает и не работает (либо в своей программе строка из TLTR43.ModuleInfo.FirmwareVersion, либо, например, поставить демо LMS, создать эксперимент и войти в обзор подключенного оборудования).
Инициализация LTR43
09:46:28.656 Версия прошивки LTR43: 2.2
09:46:28.656 Дата прошивки LTR43: 03.03.2021
вот с нового, со старого теперь уже в понедельник, с производства все ушли
2. В Вашей программе никаких других действий не происходит с LTR43? Никаких запусков синхронного ввода цифровых линий или работы из разных потоков в программе нет?
Если оставить только открытие модуля и однократное чтение регистра Modbus (чтобы иcключить влияние последовательности чтений), то так же будет от смены адреса этого чтения то работать, то нет?
нет, LTR43 только для связи с ПЛК по ModBus
и еще, ошибку нашел
#define LTR43_ERR_DATA_TRANSMISSON_ERROR (-4023)
есть подозрение что новый крейт не успевает в таймауты попадать, хотя и не маленькие выставлены
FLTR43->RS485.SendTimeoutMultiplier = 10;
FLTR43->RS485.ReceiveTimeoutMultiplier = 20;
Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4
Многоканальный телефон: +7 (495) 785-95-25
Письма и запросы: lcard@lcard.ru
Отдел продаж: sale@lcard.ru
Мы работаем с юридическими и физическими лицами, пожалуйста, прикладывайте реквизиты при оформлении заказа
Техническая поддержка: support@lcard.ru
Время работы: с 9-00 до 19-00 мск