Вверх ↑
Этот топик читают: Гость
Ответов: 16
Рейтинг: 1
#1: 2011-05-12 19:00:16 ЛС | профиль | цитата
Проблема возникла (может от неправильной реализации поставленной задачи) при переносе файла конструктора с одного компьютера на другой. Используется данный условный блок для сравнения показаний счётчика с заложенной в него значением переменной. Каждый раз программа забывает о заложенных значениях переменной. Возможно это нелогичная реализация схемы, поэтому в двух словах попытаюсь объяснить что требовалось изначально. Три исполнительных механизма (насосы) нуждаются в "Аварийном резервировании". При чём имеются условия: Рабочих механизмов должно быть не более двух, но естественно не менее одного(один из трёх остаётся для резерва). Резервных должно быть не больше и не меньше одного. Проверка осуществляется каждый раз при выборе режима работы исполнительного механизма. Результатом выбора должно выть сообщение "АВР Готов",а в противном случае система сообщает о неправильном выборе режимов работы оборудования. И ещё, как можно "приобрести права", что бы прикрепить файл проекта к посту.
Add(Label,14987165,210,77)
{
Left=100
Top=65
Width=141
Height=20
Font=[MS Sans Serif,10,0,0,1]
Caption="Режим работы НПР-1"
}
Add(ComboBox,1216222,455,77)
{
@Hint=#12:Выбор режима|12:работы НПР-2|
Left=310
Top=95
Width=140
Height=21
Hint="Выбор режима работы НПР-2"
Strings=#8:Отключен|7:Рабочий|9:Резервный|
Text="НПР-2"
ReadOnly=0
Point(Index)
Point(doSelect)
link(onClick,16482626:doEvent,[])
}
Add(Label,3163188,413,77)
{
Left=310
Top=65
Width=141
Height=20
Font=[MS Sans Serif,10,0,0,1]
Caption="Режим работы НПР-2"
}
Add(ComboBox,11970639,252,77)
{
@Hint=#12:Выбор режима|12:работы НПР-1|
Left=105
Top=95
Width=140
Height=21
Name="НПР-1"
Hint="Выбор режима работы НПР-1"
Strings=#8:Отключен|7:Рабочий|9:Резервный|
Text="НПР-1"
ReadOnly=0
Point(Index)
Point(doSelect)
link(onClick,7359844:doEvent,[])
}
Add(Label,15076951,616,77)
{
Left=510
Top=65
Width=151
Height=20
Font=[MS Sans Serif,10,0,0,1]
Caption="Режим работы НПР-3"
}
Add(ComboBox,16078882,665,77)
{
@Hint=#12:Выбор режима|12:работы НПР-3|
Left=510
Top=95
Width=150
Height=21
Hint="Выбор режима работы НПР-3"
Strings=#8:Отключен|7:Рабочий|9:Резервный|
Text="НПР-3"
ReadOnly=0
Point(Index)
Point(doSelect)
link(onClick,14386209:doEvent,[(709,90)(709,70)(655,70)(655,146)])
}
Add(IndexToChanel,14386209,665,140)
{
@Hint=#11:Размножение|14:сигналов ключа|5:НПР-3|
Count=3
Data=Integer(1)
link(onEvent2,13716698:doSwitch,[(715,153)(715,321)])
link(onEvent3,11789913:doSwitch,[(708,160)(708,223)])
}
Add(IndexToChanel,16482626,504,84)
{
@Hint=#20:Размножение сигналов|11:ключа НПР-2|
Count=3
Data=Integer(1)
link(onEvent2,11146068:doSwitch,[(558,97)(558,307)])
link(onEvent3,12170226:doSwitch,[(548,104)(548,202)])
}
Add(IndexToChanel,7359844,294,84)
{
@Hint=#11:Размножение|14:сигналов ключа|5:НПР-1|
Count=3
Data=Integer(1)
link(onEvent2,13724026:doSwitch,[(339,97)(339,307)])
link(onEvent3,14989656:doSwitch,[(346,104)(346,195)])
}
Add(Hub,4711173,784,182)
{
InCount=3
OutCount=1
link(onEvent1,3476001:doNext,[(809,188)(809,118)])
}
Add(Counter,3476001,840,112)
{
@Hint=#7:Счётчик|11:"резервных"|5:НПРов|
Max=2
Point(doMin)
link(onNext,16510734:doEvent1,[])
}
Add(If_else,4178657,826,210)
{
@Hint=#12:Блокирование|10:"двойного"|14:резервирования|
Op2=Integer(2)
link(onTrue,2056564:doMessage,[(862,216)(862,181)])
link(onFalse,10922009:doMessage,[])
link(Op1,3476001:Count,[(832,196)(846,196)])
}
Add(Message,10922009,875,217)
{
@Hint=#7:Условие|16:"резервирования"|9:Выполнено|
Message="Зарезервирован НПР"
Caption="Готовность АВР НПР"
Icon=4
Point(onOK)
link(onOK,13328887:doEvent1,[(919,230)(919,223)])
}
Add(Message,2056564,875,175)
{
@Hint=#13:Невозможность|14:резервирования|15:более 1-го НПРа|
Message="Более одного
"зарезервированного"
НПРа"
Caption="Готовность АВР НПР"
Icon=1
Point(onOK)
link(onOK,9430809:doOn,[(921,188)(921,195)])
}
Add(Switch,14989656,420,189)
{
@Hint=#13:Ключ контроля|13:"Резервности"|5:НПР-1|
DataOn=Integer(1)
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,4711173:doEvent1,[(463,202)(463,188)])
link(onOff,1312202:doEvent1,[(475,209)(475,170)(170,170)(170,125)])
}
Add(Switch,12170226,581,196)
{
@Hint=#13:Ключ контроля|13:"Резервности"|5:НПР-2|
DataOn=Integer(1)
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,4711173:doEvent2,[(682,209)(682,195)])
link(onOff,9040161:doEvent1,[(639,216)(639,156)(364,156)(364,125)])
}
Add(Switch,11789913,728,217)
{
@Hint=#13:Ключ контроля|13:"Резервности"|5:НПР-3|
DataOn=Integer(1)
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,4711173:doEvent3,[(774,230)(774,202)])
link(onOff,5088006:doEvent1,[(769,237)(769,174)(580,174)(580,125)])
}
Add(ChanelToIndex,13853793,210,119)
{
@Hint=#5:Сброс|10:"двойного"|14:резервирования|5:НПР-1|
link(onIndex,11970639:doSelect,[])
}
Add(ChanelToIndex,2814919,406,119)
{
@Hint=#5:Сброс|10:"двойного"|14:резервирования|5:НПР-2|
link(onIndex,1216222:doSelect,[])
}
Add(ChanelToIndex,544968,616,119)
{
@Hint=#16:Сброс "двойного"|14:резервирования|5:НПР-3|
link(onIndex,16078882:doSelect,[])
}
Add(Memory,8635642,924,315)
{
@Hint=#15:Ячейка счётчика|15:"рабочих" НПРов|15:для сравнения с|10:"резервом"|
link(onData,1056961:doValue,[])
}
Add(Hub,15865581,798,287)
{
InCount=3
link(onEvent1,886383:doNext,[(826,293)(826,321)])
}
Add(Counter,886383,840,315)
{
@Hint=#7:Счётчик|11:"рабочести"|5:НПРов|
Max=3
Point(doMin)
link(onNext,7399329:doEvent1,[])
}
Add(If_else,9456559,644,413)
{
@Hint=#12:Блокирование|10:3-х из 3-х|9:"Рабочих"|
Op2=Integer(3)
link(onTrue,5243084:doMessage,[])
link(onFalse,879237:doCompare,[(691,426)(691,461)])
link(Op1,886383:Count,[(650,365)(846,365)])
}
Add(Message,14085232,763,455)
{
@Hint=#12:Сигнализация|13:об отсутствии|13:Рабочего НПРа|
Message="Отсутствует
Рабочий
НПР в АВР"
Caption="Готовность АВР НПР"
Icon=4
link(onMessage,9941087:doReset,[(850,461)(850,412)])
}
Add(Message,5243084,763,413)
{
@Hint=#9:Объявляет|15:о черезмерности|15:"рабочих" НПРов|
Message="Выбрано более
двух "рабочих"
НПРов"
Caption="Готовность АВР НПР"
Icon=1
Point(onOK)
link(onMessage,7347392:doEvent1,[])
}
Add(Switch,13724026,364,301)
{
@Hint=#13:Ключ контроля|11:"Рабочести"|5:НПР-1|
DataOn=Integer(1)
DataOff=Integer(1)
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,15865581:doEvent1,[(456,314)(456,293)])
link(onOff,1312202:doEvent2,[(408,321)(408,274)(160,274)(160,132)])
}
Add(Switch,11146068,588,301)
{
@Hint=#13:Ключ контроля|11:"Рабочести"|5:НПР-2|
DataOn=Integer(1)
DataOff=Integer(1)
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,15865581:doEvent2,[(681,314)(681,300)])
link(onOff,9040161:doEvent2,[(628,321)(628,285)(353,285)(353,132)])
}
Add(Switch,13716698,728,315)
{
@Hint=#13:Ключ контроля|11:"Рабочести"|5:НПР-3|
DataOn=Integer(1)
DataOff=Integer(1)
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,15865581:doEvent3,[(788,328)(788,307)])
link(onOff,5088006:doEvent2,[(771,335)(771,276)(569,276)(569,132)])
}
Add(Hub,1312202,182,119)
{
InCount=3
OutCount=1
link(onEvent1,13853793:doWork1,[])
}
Add(Hub,9040161,378,119)
{
InCount=3
OutCount=1
link(onEvent1,2814919:doWork1,[])
}
Add(Hub,5088006,588,119)
{
InCount=3
OutCount=1
link(onEvent1,544968:doWork1,[])
}
Add(If_else,879237,700,455)
{
@Hint=#12:Блокирование|10:Отсутствия|12:Рабочего НПР|
Type=1
Op2=Integer(1)
link(onTrue,14085232:doMessage,[])
link(Op1,8635642:Value,[(706,383)(930,383)])
}
Add(Hub,7347392,805,413)
{
OutCount=3
link(onEvent1,9941087:doOn,[])
link(onEvent2,12113884:doEvent1,[(828,426)(828,357)(121,357)(121,146)])
}
Add(Hub,12113884,133,140)
{
@Hint=#19:Сброс списков НПРов|21:при нарушения АВР НПР|
InCount=2
OutCount=3
link(onEvent1,1312202:doEvent3,[(165,146)(165,139)])
link(onEvent2,9040161:doEvent3,[(267,153)(267,139)])
link(onEvent3,5088006:doEvent3,[(453,160)(453,139)])
}
Add(Switch,9941087,861,399)
{
@Hint=#14:Сброс счётчика|15:"рабочих" НПРов|
DataOn=Integer(1)
DataOff=Integer(1)
Point(doOn)
Point(onOn)
Point(onOff)
link(onOn,13674032:doEvent1,[])
}
Add(Hub,6866146,294,329)
{
@Hint=#12:Сброс ключей|15:при>2 "рабочих"|5:НПРов|
OutCount=3
link(onEvent1,13724026:doReset,[(336,335)(336,314)])
link(onEvent2,11146068:doReset,[(468,342)(468,314)])
link(onEvent3,13716698:doReset,[(681,349)(681,328)])
}
Add(Hub,13674032,910,406)
{
OutCount=3
link(onEvent1,886383:doMin,[(936,412)(936,376)(822,376)(822,342)])
link(onEvent2,6866146:doEvent1,[(944,419)(944,393)(282,393)(282,335)])
link(onEvent3,13328887:doEvent2,[(971,426)(971,243)(924,243)(924,230)])
}
Add(Hub,3232260,1001,182)
{
OutCount=3
link(onEvent1,3476001:doMin,[(1027,188)(1027,164)(828,164)(828,139)])
link(onEvent2,12113884:doEvent2,[(1031,195)(1031,264)(111,264)(111,153)])
link(onEvent3,3710203:doEvent1,[(1023,202)(1023,254)(359,254)(359,216)])
}
Add(Switch,9430809,959,175)
{
DataOn=Integer(1)
DataOff=Integer(1)
Point(doOn)
Point(onOn)
Point(onOff)
link(onOn,3232260:doEvent1,[])
}
Add(Hub,3710203,371,210)
{
OutCount=3
link(onEvent1,14989656:doReset,[(403,216)(403,202)])
link(onEvent2,12170226:doReset,[(483,223)(483,209)])
link(onEvent3,11789913:doReset,[])
}
Add(Label,4495577,840,77)
{
@Hint=#9:Резервный|
Left=880
Top=25
Width=128
Height=17
Caption="Счётчик резервных НПР"
}
Add(Label,14056563,840,273)
{
@Hint=#7:Рабочий|
Left=880
Top=55
Width=113
Height=17
Caption="Счётчик рабочих НПР"
}
Add(GLabel,8443847,924,70)
{
@Hint=#9:Резервный|
Left=1020
Top=25
Width=10
Height=17
Caption="0"
link(Text,9350331:Value,[(930,63)(974,63)(974,151)(930,151)])
}
Add(GLabel,14188306,980,273)
{
@Hint=#7:Рабочий|
Left=1020
Top=55
Width=10
Height=17
Caption="0"
link(Text,1056961:Value,[(986,258)(1042,258)(1042,358)(986,358)])
}
Add(Memory,9350331,924,112)
{
link(onData,4178657:doCompare,[(966,118)(966,156)(814,156)(814,216)])
}
Add(Hub,16510734,889,112)
{
link(onEvent1,9350331:doValue,[])
link(onEvent2,8443847:doText,[(913,125)(913,76)])
}
Add(Memory,1056961,980,315)
{
link(onData,9456559:doCompare,[(1024,321)(1024,370)(632,370)(632,419)])
}
Add(Hub,7399329,889,315)
{
link(onEvent1,8635642:doValue,[])
link(onEvent2,14188306:doText,[(914,328)(914,279)])
}
Add(Hub,13328887,931,217)
{
InCount=2
OutCount=1
link(onEvent1,9430809:doReset,[(952,223)(952,188)])
}
Add(MainForm,91728,747,20)
{
@Hint=#5:НПР-1|
Left=278
Top=283
Width=736
Height=605
Color=-16777215
ParentFont=0
Ctl3D=0
AlphaBlendValue=200
Caption="АВР НПР"
BorderStyle=6
DragForm=0
TransparentColor=12632256
MouseCapture=0
ClientSize=0
Position=1
Point(doPicture)
}



карма: 0

0
Ответов: 1528
Рейтинг: 57
#2: 2011-05-12 19:03:28 ЛС | профиль | цитата
пример схемы
карма: 0

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#3: 2011-05-12 19:08:18 ЛС | профиль | цитата
Ingvar писал(а):
Некоректная работа условного блока (If else)

Если стравнивать текст, а не числа, то можно получить весьма странный результат сравнения
карма: 22

0
Ответов: 3889
Рейтинг: 362
#4: 2011-05-12 19:11:34 ЛС | профиль | цитата
Ingvar писал(а):
прикрепить файл проекта к посту
Пробовали в пост вставить тег code из панели над редактором нового сообщения и Ctrl+A, Ctrl+C, Ctrl+V туда вашу схему из среды ?
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#5: 2011-05-12 19:13:00 ЛС | профиль | цитата
Ingvar писал(а):
И ещё, как можно "приобрести права", что бы прикрепить файл проекта к посту.

При вводе текста сообщения на форум, посмотрите чуть выше окна, куда вбивать текст
карма: 10
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#6: 2011-05-12 19:14:18 ЛС | профиль | цитата
Вот пример текстового сравнения, должно выдать, что первое число больше второго, а что выдает

code_23899.txt

Достаточно Edit перевести в формат DataType=Nember и условный блок отработает нормально
карма: 22

0
файлы: 1code_23899.txt [797B] [194]
Ответов: 16
Рейтинг: 1
#7: 2011-05-12 19:24:18 ЛС | профиль | цитата
nesco писал(а):
Если стравнивать текст, а не числа, то можно получить весьма странный результат сравнения
Сравнивал показания "счётчика" с числовыми данными. Код вложил в первый пост.
------------ Дoбавленo в 19.24:
nesco писал(а):
Достаточно Edit перевести в формат DataType=Nember и условный блок отработает нормально
Да он нармально работал, пока схему созданную в конструкторе не переносил на другой комп. Может это нормальное явление для конструктора, что он забывает присвоенную переменную? И ещё, я не умею читать КОД - можно его преоброзовать с схему в конструкторе? И как показать на форуме ссылку с файлообменника?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#8: 2011-05-12 19:25:28 ЛС | профиль | цитата
Ingvar, вставить пробовали, как копировали? В пустой проект Windows?
карма: 1

0
Ответов: 3349
Рейтинг: 233
#9: 2011-05-12 19:25:36 ЛС | профиль | цитата
Assasin писал(а):
При вводе текста сообщения на форум, посмотрите чуть выше окна, куда вбивать текст

карма: 1

0
Ответов: 3889
Рейтинг: 362
#10: 2011-05-12 19:27:18 ЛС | профиль | цитата
Ingvar, и не понятно, что у Вас забыл конструктор. Не обязательно всю схему демонстрировать, достаточно маленький, но рабочий кусочек, наглядно показывающий проблему.
карма: 1

0
Ответов: 16
Рейтинг: 1
#11: 2011-05-12 19:28:58 ЛС | профиль | цитата
1nd1g0 писал(а):
Ingvar, вставить пробовали как копировали? В пустой проект Windows?
Не понял смысла написанного ...
карма: 0

0
Ответов: 3889
Рейтинг: 362
#12: 2011-05-12 19:31:36 ЛС | профиль | цитата
Ingvar писал(а):
я не умею читать КОД - можно его преоброзовать с схему в конструкторе
скопировать как текст, и сделать вставку в окно (пустого?) проекта на HiAsm
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#13: 2011-05-12 19:31:56 ЛС | профиль | цитата
Насколько я понял задачу, то в схеме всегда должен быть один резервный насос, не важно какой по номеру, остальные должны быть в работе. Че-то схема дюже мудреная получилась для такой простой задачи. Не обращайте внимания, это мысли вслух
карма: 22

0
Ответов: 3889
Рейтинг: 362
#14: 2011-05-12 19:35:39 ЛС | профиль | цитата
Тоже настроюсь на телепатический канал. Я подозреваю, что человеку нужно сохранение данных (настройки насосов?) в файл типа ini или txt, чтобы можно было таскать с программой?
карма: 1

0
Разработчик
Ответов: 26305
Рейтинг: 2146
#15: 2011-05-12 19:38:51 ЛС | профиль | цитата
1nd1g0 писал(а):
Я подозреваю, что человеку нужно сохранение данных в файл типа ini или txt, чтобы можно было таскать с программой?

А он бедолага подумал, что выбранные данные автоматически сохраняются в его проге, это -- фантастика.
Да, и причем тогда тут блок условия вообще
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)