Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
А вот еще вопрос.
Тот, кто писал эту библиотеку (NBS), почему он сделал ФБ TCP_Client с параметром udiTimeOut,
а ФБ TCP_Read без этого параметра?
Ну было бы удобно задавать тайм-аут параметром, а не доп.таймером при чтении данных от сервера!
Разве нет?
Последний раз редактировалось ВладОвен; 06.12.2022 в 17:44.
Ладно. Вот такой вопрос.
Сервер не отвечает, потому что нету в моей строке завершающего символа с кодом 0.
Как его туда поставить? Думаю так:
1. Раз за разом перед началом чистить мою 10к-строку, чтобы в ней все символы были равны 0.
2. Формировать мою строку на сервер.
3. Непосредственно при отправке в ФБ fbTcpWrite вписывать так:
fbTcpWrite(xExecute:=TRUE, hConnection:=fbTcpClient.hConnection, pData:=ADR(sDataSend), szSize:=SIZEOF(sDataSend) +1 );
Так получится?
Буфер будет на один символ длиннее, а там 0 (см. п1.).
Мы в OwenCommunication в ФБ UNM_TcpRequest так и сделали.Ну было бы удобно задавать тайм-аут параметром, а не доп.таймером при чтении данных от сервера!
Разве нет?
Так что наши клиенты могут обойтись и без доп. таймера.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Если вы делаете SIZEOF от строки - то отправляется и "завершающий символ с кодом 0".
Потому что в CODESYS строки нуль-терминированные.
https://ru.wikipedia.org/wiki/%D0%9D...BE%D0%BA%D0%B0
Более того - отправляется ровно столько байт, сколько выделено под строку (потому что вы используете SIZEOF).
Т.е. если в вашей STRING(10000) реально всего 100 символов - то будут отправлены эти 100 символов и еще 9901 нулевых байт следом.
Буфер не будет "на один символ длиннее".Буфер будет на один символ длиннее, а там 0 (см. п1.).
Вы просто пытаетесь убедить блок в том, что размер вашей переменной на один байт больше, чем на самом деле.
Результат вы уже видели.
Последний раз редактировалось Евгений Кислов; 06.12.2022 в 18:06.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Т.е. строка в таком случае всегда вылетает с этим символом 0? Даже, если я напишу "МАМА", то вылетят не 4, а 5 символов?
Т.е. я понял смысл нуль-терминальной строки, но как происходит выход такой строки в порт?
Последний раз редактировалось ВладОвен; 06.12.2022 в 18:13.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Ваши предположения неверны.
06-12-2022 18-56-17.png
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk