1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Изменение данных, при вызове С функии socket

PLC, прочие контроллеры, промышленные компьютеры, операторские панели
Ответить

Автор темы
rost
новенький
новенький
Сообщения: 1
Зарегистрирован: 25 авг 2021, 19:49
Имя: Слава
Страна: Israel
город/регион: Ramat Gan

Изменение данных, при вызове С функии socket

Сообщение rost »

Всем привет. Я здесь новенький, так что надеюсь, что задал вопрос верно. Постараюсь полностью передать картину. Если что не так - заранее извиняюсь.

Вопрос собственно такой.
Инфраструктура такова:
АСЕ3600 Мотороловский.
У меня есть программа ладдера(если она не так называется - это не суть, но для тех кому важны мелочи, то извиняюсь). Она работает и бежит уже лет 15. Но вот мне поставили задачу - "а напиши-ка нам прогу на С, кототрая может делать: ... (список довольно длинный) ПЛЮС собирать данные из ладдера и пересылать их по сети. Сеть: TCP/IP". Вроде бы ничего сложного и в принципе с работой я быстро справился. Но потом выяснилось, что когда я открываю сокет, то колбасятся какие-то данные в одной из таблиц ладдера. И это проиcходит ТОЛЬКО, когда я открываю socket.
Порядок вызовов сетевых функций - обычный:
1. socket
2. bind
3. listen
4. accept
5. recv

И именно, когда я вызываю сокет, данный меняются. Что-бы это увидеть, я создалл механизм в ладдере и мониторю его.

Если я убираю socket(из С программы), то всё бежит нормально(с той лишь разницей, что нет передачи данных по сети).

Может быть кто-то сталкивался с такой фигнёй, т.к. у меня начинают заканчиваться идеи и я уже склонен обвинить Моторолу, что это их баг(правда мне это не поможет, АCЕ3600 у моего заказчика никто на другой контроллер менять не будет) ????

tonyk
осмотрелся
осмотрелся
Сообщения: 106
Зарегистрирован: 16 дек 2018, 16:35
Имя: Антон
Благодарил (а): 5 раз
Поблагодарили: 4 раза

Изменение данных, при вызове С функии socket

Сообщение tonyk »

На чём, под чем работает твоя программа на С? Код программы? Какие данные меняются?
Ты сам подумай: пока ты не сделал recv, как могут меняться данные в твой программе? Их кто-то корёжит, но это не стэк TCP/IP.
Ответить

Вернуться в «Средний уровень автоматизации (управляющий)»