Выложите простейший проект (без сервера, CASE и т.д.), в котором я смогу повторить проблему.
Выложите простейший проект (без сервера, CASE и т.д.), в котором я смогу повторить проблему.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Проблема создать простейший проект.
Удалил визуализацию и получил кучу ошибок. Мол, нету визуализации.
Ну неужели нельзя сделать проект для СПК без использования визуализации?
Буду делать еще раз.
Готово: DropMeFiles – бесплатный файлообменник без регистрации
Проблема проявляется и в этом проекте.
Вы указываете функции, что у вас размер буфера - 10000 байт, но в реальности под указатель подкладываете переменную типа STRING, которая занимает 81 байт
(по умолчанию - если макс. размер строки не указан - выделяется память под 80 символов + терминирующий ноль).
Поэтому у вас переполнение буфера происходит.
Сделайте так:
Код:... sDataSend : STRING(10000); ...
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Да. Действительно заработало. Кто бы мог подумать про гребанную строку длинной в 10к символов?!
Теперь другая проблема: у меня не открывается клиент.
Но тут, наверное, мне нужно более фундаментально подойти к проблеме.
Мне кажется, что я вообще не догоняю как строить эти программы.
Вот можно открыть сокет так:
Код:CASE bState OF 05: // Формируем строку для отправки // Тут мы уже разобрались, оказывается надо строку делать с длинной в 10к символов. bState := 10; 10: // создаем TCP-клиента fbTcpClient(xEnable:=TRUE, udiTimeOut:=1000, ipAddr:=stIpServer, uiPort:=uiPortServer); IF fbTcpClient.xActive THEN bState := 20; ELSIF bTries > 10 OR fbTcpClient.xError THEN bError := 10; // код шага, где произошла ошибка xError := TRUE; // флаг ошибки bState := 50; // Выход из автомата шагов END_IF 20: ... // Другие шаги, через неделю до них дойдем.
Да, можно.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Вот такой вопрос.
Я открываю сокет и даю время на его открытие 10 секунд.
Но программа сразу же мне выдает ошибку TIME_OUT.
Что я делаю не так?
Безымянный777777.png
Получается, что ФБ TcpClient подымает флаг xError и причина этого флага лежит в eError? Их надо контролировать?
Последний раз редактировалось ВладОвен; 06.12.2022 в 17:08.
Вы ошибаетесь. Таймаут задается в микросекундах.Я открываю сокет и даю время на его открытие 10 секунд.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
А как в отладке увидеть реальное (фактическое) время открытия?