|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
Сохранение переменных при условии06.10.2014, 08:19. Показов 2264. Ответов 30
Метки нет (Все метки)
Короче нужно следующие: при значении "1" переменной №1 значение переменной №2 равнялось "20", при значении "0" переменной №1 переменная №2 принимала исходное значение, любое(например "24") до изменения переменной №1. Делаю на проге CodeSys 2.3 на базе Visual C++. Cоставляю алгоритм работы охранки, типо при единице температура равна 20, при 0 возвращается на ранее заданную.
IF in1=1 THEN no1:=temp1; out1:=20; ELSE IF in1=0 THEN out1:=no1; END_IF; END_IF; in1 - переменная №1 out1 - переменная №2 no1 - переходная переменная temp1 - константа. При in1=0 out1=0 , не могу понять в чем причина?
0
|
|
| 06.10.2014, 08:19 | |
|
Ответы с готовыми решениями:
30
Сохранение переменных Сохранение переменных Сохранение значений переменных при повторном запуске скрипта |
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
| 06.10.2014, 08:34 | |
|
KO_Termit, при in1 = 0 вы для no1 не присваиваете значение, но используете его. По-умолчанию в no1 хранится, наверное, 0?
0
|
|
|
Модератор
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,233
|
||||||
| 06.10.2014, 08:39 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 09:03 [ТС] | |
|
Да если бы было все так просто. Опишу задачу яснее мне нужно в переменную №2 записать 20, при это сохранить в этот момент предыдущее значение(допустим "24") при условии "1" в переменной №1, при "0" в пер. №1 это значение(допустим "24") опять записать в пер. №2.
0
|
|
|
Модератор
13766 / 10960 / 6490
Регистрация: 18.12.2011
Сообщений: 29,233
|
||||||
| 06.10.2014, 09:30 | ||||||
0
|
||||||
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||||||||||||
| 06.10.2014, 09:51 | ||||||||||||
|
Допустим, задача звучит так: Если входной параметр равен 1, то значение выходного должно быть 20, если входной параметр равен 0, то значение параметра должно остаться прежним. Тогда, если не принципально, чтобы переменная out1 хоть на наносекунды принмала значения 20, то
Ваш этот CodeSys 2.3 на базе Visual C++ вижу впервые, поэтому с синтаксисом мог и накосячить.
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 10:01 [ТС] | |
|
Ok, почти все работает с последним кодом, но при 0 равно 24, при 1 равно 20, а когда опять 0 равно 20, а нужно 24!
0
|
|
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||||||
| 06.10.2014, 10:12 | ||||||
|
KO_Termit, Так с этого и нужно было начинать.
Шаг 1: вх. 1 - вых. 20; Шаг 2: вх. 0 - вых. 24; Шаг 3: вх. 1 - вых. 20; Шаг 4: вх. 1 - вых. 20; Шаг 5: вх. 0 - вых. ? Что должно получится на шаге 5? 20 или 24? Если 20, как значение предыдущей операции, то код будет такой
0
|
||||||
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 10:13 [ТС] | |
|
Т.е. должна быть 3 переменная, к которой мы бы обращались при определенном условии и хранила значение другой переменной. Суть в чем есть термостат в помещении, которому можно задавать уставку, он уже по своему алгоритму открывать радиаторы или закрывает. У него есть объект связи(переменная) куда можно записать значение уставки. Есть релюшка, которая связанная с считывателем карт доступа, она может выдать в систему 0 и 1. Суть следующая при постановки на охрану шлется 1 в систему(контроллер с кодом программы) и контроллер уже шлет уставку 20 градусов на объект связи термостата, при снятии с охраны на контроллер шлется 0, а на термостат та уставка, которая было до постановки на охрану.
0
|
|
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
| 06.10.2014, 10:13 | |
|
Ну это при учете того, что no1 имеет глобальное значение. Если оно каждый раз создается локально, то так не получится. Говорю же, синтаксиса этого языка я не знаю.
0
|
|
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 10:20 [ТС] | |
|
Два раза подряд 1 или 0 не может быть очередность только 0 или 1. Может 3 переменная и не нужна, я просто так думаю, могу ошибаться, главное чтобы алгоритма работал так
№1 1=20 №2 0=24 №3 1=20 №4 0=24 №5 1=20 №6 0=24 №... ...=... Добавлено через 6 минут Ну а если на шаге 5 захочу 24 например?
0
|
|
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||||||
| 06.10.2014, 10:20 | ||||||
|
Тогда последний код должен работать. Но из постановки задачи ясно, что нет смысла каждый раз принудительно присваивать значение 20 переменной out1. Можно написать так
0
|
||||||
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 10:27 [ТС] | |
|
не работает последний код
шаг 1 вх 0 - вых 24; шаг 2 вх 1 - вых 20; шаг 3 вх 0 - вых 20(( Ну если на 5 строке там IF in1=0 THEN
0
|
|
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
|
| 06.10.2014, 10:37 | |
|
KO_Termit, ну да, ноль там должен быть. Опечатался ... С данным алгоритмом 20 в no1 может оказаться, если два раза подряд передано значение 1. Код то тривиальный. Поэтому одно из трех:
1. Между шагом 2 и 3 был шаг 2.5, в котором передавалась единица. 2. Когда вы переносили алгоритм с форума в свой код, то оно видоизменился и стал работать не правильно. 3. В этом языке есть особенности, о которых я не знаю, а поэтому они не были мной учетны.
0
|
|
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 10:43 [ТС] | |
|
Могу скинуть руководство к программе, синтаксис относится к Visual C++, т.е. может я не в тот раздел пишу?
0
|
|
|
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
|
||||
| 06.10.2014, 10:59 | ||||
|
0
|
||||
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 11:18 [ТС] | |
|
На этом форуме все какие-то ушлые, как только о чем-нибудь просишь, сразу о зарплате говорят. Я вас не обижал уважаемый, я только попросил помочь мне и предоставил все чтобы было вам легче это сделать. Могу вас утешить мне ничего не заплатят за эту работу. Я ее делаю от необходимости и безысходности, т.к. никто в конторе не умеет это делать...
0
|
|
| 06.10.2014, 11:48 | |
|
Не по теме: KO_Termit, не надо путать понятие помощи и желание переложить свои задачи на кого-нибудь другого. Мое желание помочь уже скатилось к тому, что вы стали исполнять роль интеркативного компилятора: я пишу код, вы проверяете его работоспособность и отписываетесь о результате. Я это воспринимаю, как наглость. Свои соображения, как это должно выглядеть, я написал уже выше. А дальше уже сами читайте документацию и допиливайте программу до работоспосбного состояния.
0
|
|
|
|
|
| 06.10.2014, 11:56 | |
|
KO_Termit, опишите нормально, что вам требуется сделать. В виде алгоритма или еще как. А то так вообще ни лешего не ясно.
0
|
|
|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
| 06.10.2014, 12:15 [ТС] | |
|
Да то что вы предложили не работает даже в вашем синтаксисе. Если бы вы были правы, то я согласился с выше описанными моими недостатками. Но вы сидя тут, смеете не то что укорять человека, но и с него требовать вознаграждение за мнимую услугу - это называет шарлатанство. За такое в правилах форума должно прописано соответствующие наказание...
Добавлено через 3 минуты HighPredator Алгоритм простой: шаг 1 вх 0 - вых 20; шаг 2 вх 1 - вых 25; шаг 3 вх 0 - вых 20; шаг 4 вх 1 - вых 27; (внешний фактор тем-ру подняли в комнате - т.е. это должна быть перменная не константа и т.д.) шаг 5 вх 0 -вых 20; шаг -//- вх -//- вых -//-
0
|
|
| 06.10.2014, 12:15 | |
|
Помогаю со студенческими работами здесь
20
Как найти для этих условии 2 парных чисел а и b при котором выполняется все условии? Сохранение переменных Сохранение переменных Сохранение переменных Сохранение переменных в файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|