- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Значения "локальной" переменной в момент времени.
-
- здесь недавно
- Сообщения: 30
- Зарегистрирован: 12 сен 2020, 12:26
- Имя: Митрич
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Значения "локальной" переменной в момент времени.
Доброго времени суток Уважаемые.
Я пока новый человек в теме программирования (тапками можно и нужно кидаться не обижусь).
Периодически приходится работать с разными проектами от разных ребят которые реализованы в том или ином устройстве.
В основном ребята пишут на LAD (каждому свои фломастеры) Но столкнулся с проектом на FBD и так как опыта не шыбко много, меня удивило поведение локальной переменной а именно ее разные значения в один момент времени (хотя я думаю нужно копать в сторону циклов цпу)
Скажем так переменная
#StatusDisplayChain имеет конечное значение в OB = 97 но в самой программе я вижу что разные блоки присваивают ей другие значения.
Правильно ли я понимаю что при выполнении программы каждый проход оно допустим в пустой оператор #StatusDisplayChain = 0 добавляет первое значение которое изменяет его и так n+1 раз. Но в отображении показывает конечное? А все предыдущие значения как бы держит в уме?
Я пока новый человек в теме программирования (тапками можно и нужно кидаться не обижусь).
Периодически приходится работать с разными проектами от разных ребят которые реализованы в том или ином устройстве.
В основном ребята пишут на LAD (каждому свои фломастеры) Но столкнулся с проектом на FBD и так как опыта не шыбко много, меня удивило поведение локальной переменной а именно ее разные значения в один момент времени (хотя я думаю нужно копать в сторону циклов цпу)
Скажем так переменная
#StatusDisplayChain имеет конечное значение в OB = 97 но в самой программе я вижу что разные блоки присваивают ей другие значения.
Правильно ли я понимаю что при выполнении программы каждый проход оно допустим в пустой оператор #StatusDisplayChain = 0 добавляет первое значение которое изменяет его и так n+1 раз. Но в отображении показывает конечное? А все предыдущие значения как бы держит в уме?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Значения "локальной" переменной в момент времени.
Хочу поинтерeсоваться: что сие означает? Ну, т.е. что это за такой волшебный "один момент времени" в Вашем понимании? В представленном Вами фрагменте программы сначала переменной было присвоенно одно значение, затем - другое. В Step7 программа выполняется сверху вниз построчно, никаких ребусов тут нет. И, конечно, нет никакого "одного момента времени" в этой истории.
-
- почётный участник форума
- Сообщения: 3576
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 271 раз
Значения "локальной" переменной в момент времени.
Мониторинг в ТИА Портале не всегда отражает реальное значение переменных, если они меняются в пределах скана несколько раз. Дело в том, что сеть Ethernet не может справиться с такими быстрыми изменениями.
Поймите, как работает мониторинг: он рассматривает каждый network по отдельности, берет входные значения и вычисляет выходы по ним.
Язык программирования не имеет значения.
Поймите, как работает мониторинг: он рассматривает каждый network по отдельности, берет входные значения и вычисляет выходы по ним.
Язык программирования не имеет значения.
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Значения "локальной" переменной в момент времени.
Так тут-то на скринах все значения правильные отображены. Ну, вопрос только по значению 85 на второй картинке, но скорее всего там был еще фрагмент кода, где переменной присваивались эти самые 85, просто этот фрагмент на скрин не попал.
-
- почётный участник форума
- Сообщения: 3576
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 6 раз
- Поблагодарили: 271 раз
Значения "локальной" переменной в момент времени.
Все верно. Держит не "в уме", а в той ячейке памяти, которая выделена под эту переменную. Принцип "Кто последний, того и тапки". С точки зрения работоспособности, нормально, а с точки зрения читаемости программы, так себе. Если таких операций присваивания немного, то возможно имело бы смысл записать условия выполнения операций так, чтобы они никогда не выполнялись одновременно. Тогда было бы все определенно и строго.PsiSoP писал(а): ↑21 авг 2021, 13:27 Правильно ли я понимаю что при выполнении программы каждый проход оно допустим в пустой оператор #StatusDisplayChain = 0 добавляет первое значение которое изменяет его и так n+1 раз. Но в отображении показывает конечное? А все предыдущие значения как бы держит в уме?
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Значения "локальной" переменной в момент времени.
Угу. IF THEN надо написать по-человечески и не заниматься ерундой
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Значения "локальной" переменной в момент времени.
Вот сразу видно, человек сразу из программистов в электронщики попал, а не как все, из электриков....шутка, не обижайся
на самом деле у буржуев в написании программы спошь и рядом такой подход, когда много шагов техпроцесса, а в каждом шаге еще подшаги, в них еще. Пишут программу в лоб, в LAD, и не парятся, ни в отладке ни в последующей модернизации.
-
- эксперт
- Сообщения: 1112
- Зарегистрирован: 09 фев 2011, 11:32
- Имя: Дитрих Евгений Линусович
- город/регион: Донецк
- Благодарил (а): 323 раза
- Поблагодарили: 218 раз
Значения "локальной" переменной в момент времени.
В литературе попалась фраза про качество написания программы - "телефонный тест". Это было в одной из двух:
- Керниган Б.В... Элементы стиля программирования.
- Д. Прайс Программирование на языке Паскаль. Практическое руководство.
Фраза, кажется была в первой.
Книги старые, но стоящие для прочтения.
- Керниган Б.В... Элементы стиля программирования.
- Д. Прайс Программирование на языке Паскаль. Практическое руководство.
Фраза, кажется была в первой.
Книги старые, но стоящие для прочтения.
_______________________________________________
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
Узкая специализация в широком смысле этого слова ведет к широкой идиотизации в узком смысле этого слова . (С) Бернард Шоу
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Значения "локальной" переменной в момент времени.
ZuElecRu, ну, Вас тут нет сложных логических конструкций, а просто сплошные присвоения по простым условиям. В таких случаях IF THEN ELSIF... удобнее и рациональнее всего
-
- здесь недавно
- Сообщения: 30
- Зарегистрирован: 12 сен 2020, 12:26
- Имя: Митрич
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Значения "локальной" переменной в момент времени.
Премного благодарен всем отписавшимся.
Извиняюсь за то что сразу не ответил но мирские будни с лопатой и картошкой...)
Почему был задан вопрос - ранее я такого просто не встречал у других ребят в коде.
Американские коллеги пишут на LAD и создают строгие условия как по циклам так и по присвоениям значений.
А вот коллеги из германии в основном почему то любят FBD и устраивают дикую мешанину. Но это можно так сказать победить но вот ихние сокращения названия переменных или в комментариях на немецком..... Пока не прошерстиш весь код что и откуда и за что отвечает, трудно понять.
Извиняюсь за то что сразу не ответил но мирские будни с лопатой и картошкой...)
Почему был задан вопрос - ранее я такого просто не встречал у других ребят в коде.
Американские коллеги пишут на LAD и создают строгие условия как по циклам так и по присвоениям значений.
А вот коллеги из германии в основном почему то любят FBD и устраивают дикую мешанину. Но это можно так сказать победить но вот ихние сокращения названия переменных или в комментариях на немецком..... Пока не прошерстиш весь код что и откуда и за что отвечает, трудно понять.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Значения "локальной" переменной в момент времени.
Nikolay:
К сожалению у меня нет такого пакета в Step7, но мне был интересен пример конструкции IT then для верней строчки второй картинки...
К сожалению у меня нет такого пакета в Step7, но мне был интересен пример конструкции IT then для верней строчки второй картинки...
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Значения "локальной" переменной в момент времени.
там половина верхней строки срезана на второй картинке.
Отправлено спустя 3 минуты 18 секунд:
Комментарии на валлонском диалекте французского языка (Бельгия), где автоматический перевод половину слов просто не переводит (типа, это не французские слова) - вот где полный п...
-
- здесь недавно
- Сообщения: 30
- Зарегистрирован: 12 сен 2020, 12:26
- Имя: Митрич
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Значения "локальной" переменной в момент времени.
Имеется в виду tmp2?
Мнда....
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Значения "локальной" переменной в момент времени.
Да пофиг на комментарии, замените на меркеры, мне интересно как это будет. На винсс флексибл, на пример, нельзя сделать в скрипте IF tag1=true AND tag2=true как скобки не ставь, всегда приходится вкладывать
if tag1=true then
if tag2=true then
...
if tag1=true then
if tag2=true then
...
-
- здесь недавно
- Сообщения: 30
- Зарегистрирован: 12 сен 2020, 12:26
- Имя: Митрич
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Значения "локальной" переменной в момент времени.
Благодаря вашим ответам я вопрос решил.
Пересмотрел программу в целом, разделил на шаги и больше такой гадости нету. По крайней мере стало намного удобнее.
Дабы не плодить Темы такой микровопросик:
Пересмотрел программу в целом, разделил на шаги и больше такой гадости нету. По крайней мере стало намного удобнее.
Дабы не плодить Темы такой микровопросик:
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
-
- освоился
- Сообщения: 290
- Зарегистрирован: 09 авг 2016, 13:49
- Имя: Чистилин Андрей Анатольевич
- Страна: Россия
- город/регион: Малоярославец
- Благодарил (а): 31 раз
- Поблагодарили: 35 раз
Значения "локальной" переменной в момент времени.
Ну да, нормально, читаемо, непривычно правда. Надо все таки поставить себе, потренироваться, можно как в AWL все один network запихнуть..., с точки зрения писателя программы, хорошо, с точки зрения наладчика полный кошмар. Хотя без комментариев и так и так кошмар.
Спасибо.
А онлайн это как выглядит?
-
- освоился
- Сообщения: 281
- Зарегистрирован: 14 фев 2014, 11:55
- Имя: Николай
- Страна: Россия
- Благодарил (а): 9 раз
- Поблагодарили: 64 раза
Значения "локальной" переменной в момент времени.
Примерно как online на AWL оно выглядит. Т.е. появляется таблица справа напротив кода программы, где значения переменных и логических выражений