Опять "Разработчик"
Там же, в сгенерированных Разработчиком файлах, есть соотвествие названия глобальной переменной ( d_30CDE3). В начале работы компонента считываются таблицы с парами номер-название параметра (таблица Din) и по этим парам и соотвествию устанавливается правильное значение глобальной переменной (d_30CDE3), равное номеру дискрета.
Прошу прощени, но я ничего не понял: где и как я должен задать имя параметра, которое отобразится в конфигурации компонента, и которому при конфигурировании задам номер дискрета в базе дискретов.
Я написал маленький С-блок, который проглатывается компиляторлом, но не имеет конфигурационных таблиц:
dep_DiscretRead(&DBlock0_out ,5,0);
vd1=DBlock0_out.value;
dep_DiscretWrite(6,vd1,FALSE,0);
Подскажите, как надо было бы написать.
Я написал маленький С-блок, который проглатывается компиляторлом, но не имеет конфигурационных таблиц:
dep_DiscretRead(&DBlock0_out ,5,0);
vd1=DBlock0_out.value;
dep_DiscretWrite(6,vd1,FALSE,0);
Подскажите, как надо было бы написать.
С уважением, Б.Гаврилов
Теплосеть г. Королев.
Теплосеть г. Королев.
Чтобы в с-блоке использовать конфигурационные параметры, нужно придерживаться следующих правил:
1. С-блок должен вызываться из блока-диаграммы;
2. С-блок должен получать номера дискретов из блока-диаграммы через коннектор и писать в свои переменные;
3. В с-коде в качестве параметра функции dep_DiscretRead использовать переменные с-блока, которые через коннектор получают номера дискретов.
Например у Вас есть блок-диаграмма "Д" и с-блок "С". На панель "диаграмма" у "Д" добавьте элемент "Номер дискрета" и с-блок "С". Соедините "Номер дискрета" с терминалом с-блока "С". На панель "панель" с-блока "С" добавьте число и соедините его с терминалом коннектора (убедитесь что число настроено на вход). Далее в коде на панели "Диаграмма-С" с-блока используйте название псевдонима числа в качестве параметра функции dep_DiscretRead.
1. С-блок должен вызываться из блока-диаграммы;
2. С-блок должен получать номера дискретов из блока-диаграммы через коннектор и писать в свои переменные;
3. В с-коде в качестве параметра функции dep_DiscretRead использовать переменные с-блока, которые через коннектор получают номера дискретов.
Например у Вас есть блок-диаграмма "Д" и с-блок "С". На панель "диаграмма" у "Д" добавьте элемент "Номер дискрета" и с-блок "С". Соедините "Номер дискрета" с терминалом с-блока "С". На панель "панель" с-блока "С" добавьте число и соедините его с терминалом коннектора (убедитесь что число настроено на вход). Далее в коде на панели "Диаграмма-С" с-блока используйте название псевдонима числа в качестве параметра функции dep_DiscretRead.
Спасибо, Vadim! Исе понятно, но беда в следующем:
У меня прлг7рамма управления насосами объета сч 10 группами насосов.
Для каждой группы вводятся 12 уставок. Итого 120 параметров. Изобразить на одной диаграмме их невозможно. Невозможно, также иметь с_блок со 120 терминалами. Прошу прощения, что сразу не написал об этом.
Скажите пожалуйста, Ваш вариант - единственный, или все таки можно обойтись одним толькоь с_блоком. Может где-то можно ввести определение номера параметра в виде, скажем, t_ABCDEF ? Аброкадабру ABCDEF готов составлять вручную
PS. Диаграмму можно разбить на 10-15 блоков, но так не хочется использовать этот некрасивый вариант..
У меня прлг7рамма управления насосами объета сч 10 группами насосов.
Для каждой группы вводятся 12 уставок. Итого 120 параметров. Изобразить на одной диаграмме их невозможно. Невозможно, также иметь с_блок со 120 терминалами. Прошу прощения, что сразу не написал об этом.
Скажите пожалуйста, Ваш вариант - единственный, или все таки можно обойтись одним толькоь с_блоком. Может где-то можно ввести определение номера параметра в виде, скажем, t_ABCDEF ? Аброкадабру ABCDEF готов составлять вручную
PS. Диаграмму можно разбить на 10-15 блоков, но так не хочется использовать этот некрасивый вариант..
С уважением, Б.Гаврилов
Теплосеть г. Королев.
Теплосеть г. Королев.
Можно создать с-блок который на вход получает номер первой уставки. В с-блоке создается цикл выполняющий одинаковые действия над всеми уставками. Номер очередной уставки получается инкрементом номера первой уставки.
На диаграмму нужно добавить 10 номеров дискретов и 10 копий с-блока и соединить каждый номер с соответствующим с-блоком.
В данном случае с-блок можно заменить блоком-диаграммой.
Предполагается что уставки одной группы расположены в возрастающем порядке рядом друг с другом. В конфигурации должно появиться 10 номеров уставок (начальный для каждой группы).
На диаграмму нужно добавить 10 номеров дискретов и 10 копий с-блока и соединить каждый номер с соответствующим с-блоком.
В данном случае с-блок можно заменить блоком-диаграммой.
Предполагается что уставки одной группы расположены в возрастающем порядке рядом друг с другом. В конфигурации должно появиться 10 номеров уставок (начальный для каждой группы).
В моем проекте много блоков, необходима разбивка по библиотекам. В какой-то момент сообщение: "Неправильное размещенрие блоков"
Перерыл help, ничего не нашел.
Какие же требования к размещению блоков?
Попутно - как определить до компиляции, что lib слишком велика?
Перерыл help, ничего не нашел.
Какие же требования к размещению блоков?
Попутно - как определить до компиляции, что lib слишком велика?
С уважением, Б.Гаврилов
Теплосеть г. Королев.
Теплосеть г. Королев.
По поводу сообщения "Неправильное размещение блоков". Библиотеки не должны использовать блоки друг друга в обоих направлениях. То есть если блоки одной библиотеки используют блоки другой, то ничего страшного в этом нет. Но при этом, если хотя бы один блок второй библиотеки использует хотя бы один блок из первой, то вы увидите данное сообщение.
Ответ на второй вопрос - никак. Определить, что lib слишком велика может только компилятор во время компиляции.
Ответ на второй вопрос - никак. Определить, что lib слишком велика может только компилятор во время компиляции.
При запуске контроллера D-182 с компонентом PWB2, контроллкр свалился в минимальный
режим с ошибкой:
1 ##Îøèáêà çàãðóçêè áèáëèîòåêè 52736 PWB2_0 01.01.1980 8:09:26:818 0106
2 Îøèáêà çàãðóçêè áèáëèîòåêè 44816 PWB2_0 LibID 01.01.1980 8:09:26:819 0606
3 Ôàòàëüíàÿ îøèáêà êîìïîíåíòà 34480 PWB2_0 CompID 01.01.1980 8:09:26:819 0601
Состояние памяти:
Свободно в РПЗУ 193,15;
ОЗУ 244,0
Под таблиы 28,12 из 32.
Вопрос: что такое ошибка 0106 и в чем причина отказа?
режим с ошибкой:
1 ##Îøèáêà çàãðóçêè áèáëèîòåêè 52736 PWB2_0 01.01.1980 8:09:26:818 0106
2 Îøèáêà çàãðóçêè áèáëèîòåêè 44816 PWB2_0 LibID 01.01.1980 8:09:26:819 0606
3 Ôàòàëüíàÿ îøèáêà êîìïîíåíòà 34480 PWB2_0 CompID 01.01.1980 8:09:26:819 0601
Состояние памяти:
Свободно в РПЗУ 193,15;
ОЗУ 244,0
Под таблиы 28,12 из 32.
Вопрос: что такое ошибка 0106 и в чем причина отказа?
С уважением, Б.Гаврилов
Теплосеть г. Королев.
Теплосеть г. Королев.
При сборке проекта регулярно получаю сообщение:
"не могу открыть файл С:\out\00020024\out.txt"
Выбор у меня один - остановить сборку, хотя программа сообщает "Остановлено пользователем"
После этого запустить сборку невозможно, приходится перезагружать "Разработчик". Иногда после перезагрузки сборка проходит, иногда снова "Не могу..."
ПРошу объяснить, что это значит?
"не могу открыть файл С:\out\00020024\out.txt"
Выбор у меня один - остановить сборку, хотя программа сообщает "Остановлено пользователем"
После этого запустить сборку невозможно, приходится перезагружать "Разработчик". Иногда после перезагрузки сборка проходит, иногда снова "Не могу..."
ПРошу объяснить, что это значит?
С уважением, Б.Гаврилов
Теплосеть г. Королев.
Теплосеть г. Королев.
Равиль, спасибо, но:
1. Программа - одно целое, и ни одна часть ее не может работать без остальных. Посоветуйте, пожалуйста: как можно связать части, используя общие массивы данных.
2. Вы ответили на последний вопрос, а я задал несколько вопросов, на которые нет ответа.
1. Программа - одно целое, и ни одна часть ее не может работать без остальных. Посоветуйте, пожалуйста: как можно связать части, используя общие массивы данных.
2. Вы ответили на последний вопрос, а я задал несколько вопросов, на которые нет ответа.
С уважением, Б.Гаврилов
Теплосеть г. Королев.
Теплосеть г. Королев.
0106 - расшифровывается как ##Ошибка загрузки библиотеки. Аргумент - номер библиотеки. Причины могут быть разные - например отсутствие этой библиотеки в контроллере.
С сообщением "не могу открыть файл ..." не сталкивался, ничего сказать не могу.
Действительно в Разработчике сборка всегда начинается сначала - это особенность программы.
Два компонента можно связать только через дискреты, аналоги или счетчики.
С сообщением "не могу открыть файл ..." не сталкивался, ничего сказать не могу.
Действительно в Разработчике сборка всегда начинается сначала - это особенность программы.
Два компонента можно связать только через дискреты, аналоги или счетчики.