|
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 28
|
|
Сохранение переменных при условии06.10.2014, 08:19. Показов 2442. Ответов 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
|
|
|
Модератор
13781 / 10974 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
|
||||||
| 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
|
|
|
Модератор
13781 / 10974 / 6491
Регистрация: 18.12.2011
Сообщений: 29,259
|
||||||
| 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 при котором выполняется все условии? Сохранение переменных Сохранение переменных Сохранение переменных Сохранение переменных в файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|