Страница 838 из 1041 ПерваяПервая ... 338738788828836837838839840848888938 ... ПоследняяПоследняя
Показано с 8,371 по 8,380 из 10404

Тема: ВОПРОС-ОТВЕТ (отвечаем на простые вопросы от новичков)

  1. #8371

    По умолчанию

    Я совершенно согласен с вами, что информативнее писать подробнее в названиях переменных. Но сейчас меня интересует принципиальный вопрос. На языке ST оператор %MW71:=1; Будет работать корректно? И к слову %MW71 в дальнейшем может обратится внешний компьютер?
    И такое в секции Global Variables MW_71 AT %MW71: INT; имеет тот же результат, если отработать MW_71:=1;?
    Это все одно и тоже?
    Я переношу программу с одного контроллера (M221) на другой (ОВЕН). Программа большая и муторная по логике. И перевожу с языка IL на ST. Боюсь запутаться.

  2. #8372

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    Я совершенно согласен с вами, что информативнее писать подробнее в названиях переменных. Но сейчас меня интересует принципиальный вопрос. На языке ST оператор %MW71:=1; Будет работать корректно? И к слову %MW71 в дальнейшем может обратится внешний компьютер?
    И такое в секции Global Variables MW_71 AT %MW71: INT; имеет тот же результат, если отработать MW_71:=1;?
    Это все одно и тоже?
    Я переношу программу с одного контроллера (M221) на другой (ОВЕН). Программа большая и муторная по логике. И перевожу с языка IL на ST. Боюсь запутаться.
    Ну это легко проверить, создаёте тестовую программу с одной переменной, и в эмуляции проверяете)))

  3. #8373

    По умолчанию

    Работает, если адреса в конфигурации и в глобальных совпадают. 1 Эмуляция.jpg

    Но как по мне проще сразу, вместо АТ вписать MW_71. И в глобальных уже ничего писать не надо))) 12 Эмуляция.jpg
    Последний раз редактировалось kondor3000; 15.01.2022 в 16:29.

  4. #8374

    По умолчанию

    Ваш ответ вверг меня в стопор! Такое ощущение, что я вообще иду не в том направлении. Я занимаюсь этой проблемой всего четыре дня. И, естественно, я многое не улавливаю в этой системе. Я правильно понял, что секция Global Variable необходима чтобы объявлять переменные (я не о входных и выходных) для доступа к ним из любого места программы? А Вы показали Register input module. Зачем? Или Вы эмулировали внешний доступ к внутреннему слов?

    И если уж я тут, то помогите. В чем ошибка?:
    Ошибка.png

  5. #8375

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Золотые слова.
    Осознание начнется после разделения алгоритма и обмена.
    Да вот я и зашел на форум для получения консультаций. Когда я программировал ПЛК M221, то там ничего не нужно было делать со словами к которым будет внешнее обращение сторонним устройством (Master) . А здесь, оказывается. нужно каждое такое слово расписать в конфигурации ПЛК? Я правильно понял? Или я все усложняю?
    Если мне в программе необходимо зарезервировать 20 слов (16 битных), то недостаточно , разве, объявить их в секции Gllobal_Variables, чтобы компилятор не распределил на этих нужных словах свои переменные?
    Подскажите на примере, как прописать слова 70,71, 74, 75, чтобы было к ним возможное обращение внешним компьютером. Компьютер будет читать и записывать данные в эти слова.

  6. #8376

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    Ваш ответ вверг меня в стопор! Такое ощущение, что я вообще иду не в том направлении. Я занимаюсь этой проблемой всего четыре дня. И, естественно, я многое не улавливаю в этой системе. Я правильно понял, что секция Global Variable необходима чтобы объявлять переменные (я не о входных и выходных) для доступа к ним из любого места программы? А Вы показали Register input module. Зачем? Или Вы эмулировали внешний доступ к внутреннему слов?

    И если уж я тут, то помогите. В чем ошибка?:
    Ошибка.png
    В Global Variable объявляются те переменные, которые не задействованы в обмене. Те которые в конфигурации, нужны для обмена и они тоже глобальные.
    И только в конфигурации имеют свои адреса, например %IW7.0.0.1 , %QB12.0.2.0. К ним можно обращаться и по имени и по адресу.
    На скрине вы пытаетесь маску WORD, разложить на BYTE, или я не так понимаю.
    Я вам писал как маску разложить на биты (BOOL). Либо из битов собрать маску. Только биты могут быть TRUE и FALSE.
    Последний раз редактировалось kondor3000; 15.01.2022 в 17:24.

  7. #8377

    По умолчанию

    Я понял ваше решение!!!
    Постоянно в цикл ПЛК осуществляется
    Mask.0:=Avariya1; Mask.1:=Avariya2;
    И как только я где-то изменю, например

    Avariya1:=TRUE; Avariya2:=FALSE;

    То на следующем цикле изменится слово Mask.

    Сейчас это внесу к себе в проект.

  8. #8378

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    Я понял ваше решение!!!
    Постоянно в цикл ПЛК осуществляется
    Mask.0:=Avariya1; Mask.1:=Avariya2;
    И как только я где-то изменю, например

    Avariya1:=TRUE; Avariya2:=FALSE;

    То на следующем цикле изменится слово Mask.

    Сейчас это внесу к себе в проект.
    Ну в общем правильно, только можно сначала присвоить битам TRUE, а уже потом собрать их в маску и передать. Тогда присвоится в этом цикле.

  9. #8379

    По умолчанию

    kondor3000, спасибо! Все пошло.

    А как представлять слова в программе, к которым будет обращение от внешнего компьютера? Я уже задавал подобный вопрос:

    Подскажите на примере, как прописать слова 70,71, 74, 75 в проекте, чтобы было к ним возможное обращение внешним компьютером. Компьютер будет читать и записывать данные в эти слова.

  10. #8380

    По умолчанию

    Цитата Сообщение от vsa Посмотреть сообщение
    kondor3000, спасибо! Все пошло.

    А как представлять слова в программе, к которым будет обращение от внешнего компьютера? Я уже задавал подобный вопрос:

    Подскажите на примере, как прописать слова 70,71, 74, 75 в проекте, чтобы было к ним возможное обращение внешним компьютером. Компьютер будет читать и записывать данные в эти слова.
    Тут опять надо понимать, что вы имеете ввиду. Компьютер может быть локальный рядом с ПЛК или удалённый, подключённый по изернету, на котором установлена Скада например.
    На локальном, вы можете подключиться онлайн через Codesys по Debag 232, USB или изернет кабелем прямо к ПЛК. И смотреть обмен и им управлять.
    Либо например в ПЛК делаете Модбас слейв, заносите туда нужные регистры, поднимаете на компе Owen OPC Server и читаете, пишите регистры.
    Либо на локальном компе установлена Скада, тогда через CodesysGetewayServer и CodesysOPC.02 выводите полную конфигурацию ПЛК на Скаду и передаёте на удалённый. Через Скаду можно читать и записывать все переменные.
    Последний раз редактировалось kondor3000; 19.01.2022 в 10:10.

Страница 838 из 1041 ПерваяПервая ... 338738788828836837838839840848888938 ... ПоследняяПоследняя

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •