Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Vijeo Citect Cicode
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
Grege
Привет всем, я новичок в этом форуме и в SCADA.

helpsmilie.gif
Я был бы рад, если кто-то может мне помочь с программированием в Vijeo Citect Cicode,
у меня нет не какова Опыта работы в программировании особенно с этой программой.
и есть ли программы с его помощью я мог бы преобразовать код из программы С, в любое другое, что Vijeo Citect могли бы поддержать, у меня есть код, написанный на C, я попытался скопировать в Citect и не увенчались успехом,
или если кто-нибудь знает, как писать тот же код в Citect я мог бы отдать его ... Кстати, я не писал код самостоятельного

заранее благодарю.

P.S простите за мой русский.


ScrewDriver
Программ нет, поскольку у Citect C-подобный язык и свой компилятор. Пишите заново ваш код.
Вообще странно, зачем вам программа из другого места (скады?), если она заведомо не будет работать в сайтеке.

Проще говоря - чего надо сделать-то? smile.gif))

Есть еще чудесный citect.ru
Grege
доброе утро

На самом деле я не знаю, как программировать в Citect или любой другой язык программирования.
В настоящее время я хочу, что Citect получит значения из поля детектора, сделаeт расчет и даcт мне расчетного значения, что я буду представлять на экране для оператора.

например: значение датчика температуры 20c градусов, я хочу представить его в Fahrenheit, я хотел бы сделать этот расчет в cicode и представить данныe для оператора.

Я забыл сказать, что это может быть 1 или 100 детекторов, поэтому мне нужно штоб код был гибким.

Спасибо заранее, и хорошего дня.
san
Я не очень силен в С, но по моему там нет пересчета в фаренгейты. А вобще в поле отображения можно ввести не только переменную, но и С-код выражение. Не помню как фаренгейты расчитываются, но если б нужно было перемернную пересчитать например по формуле 5*T_cels+458, где T_cels - входящае переменная в цельсиях, то в анимации отображения нужно б было ввести тоже самое, тоесть:
5*T_cels+458
ScrewDriver
Для этой задачи - вам нужно в каждом поле анимации прописать формулу пересчета, как написал san.
Что можно унифицировать - создайте функцию в cicode, которая возвращала бы значение в фаренгейтах, например вот так:

FUNCTION cels_to_far(real scels)
REAL value;
value=5*scels+458.0;
return value;

Далее в поле отображения значения вписывайте
cels_to_far(тэг в цельсиях)

Таким образом при отображении тэга у вас запустится ваша функция, обработает значение и выдаст значение в фаренгейтах - которое уже и отобразится.
Функцию нужно включить в проекте в стандартный файл с функциями.

Удачи smile.gif
Grege
когда я хочу, вернуть значение из cicode на мой графический экран, какая процедура, как вы написали return value;
Я должен определить значение тега? Как подключить эту переменную и представлять на экране?

как я сказал, что никогда нe программировал на любом языке, и я не знаю, как это сделать.

Thank you guys for you instant help.

когда я хочу, вернуть значение из cicode на мой графический экран, какая процедура, как вы написали return value;
Я должен определить значение тега? Как подключить эту переменную и представлять на экране?

как я сказал, что никогда нe программировал на любом языке, и я не знаю, как это сделать.

Thank you guys for you instant help.
ScrewDriver
You can write in english, for best understood smile.gif
so if you want to write down your variable in your screen you need:
1) copy my function into standart cicode folder into your project tree;
2) on project screen add a text screen;
3) into text screen properties, where you write down tag, just write down name of function, which you want to call for example: cels_to_far(variable_in_celsium)

Ну или на русском:
1) скопируйте мою функцию в стандартную папку cicode функций
2) на экранной форме добавьте поле для отображения тэга
3) в свойствах формы отображения, там где вы обычно пишите тэг, впишите вместо него функцию, например: cels_to_far(variable_in_celsium)
san
вместо тега пишите:
1 вариант (мой) : выражение
2 вариант (ScrewDriver): вызов функции - cels_to_far(тэг в цельсиях), а функцию пишите в файле на СI-коде
Grege
когда я хочу, вернуть значение из cicode на мой графический экран, какая процедура, как вы написали return value;
Я должен определить значение тега? Как подключить эту переменную и представлять на экране?

как я сказал, что никогда нe программировал на любом языке, и я не знаю, как это сделать.

Thank you guys for you instant help.
Grege
sorry for spam, problems with internet.

any way thank you, ill try your recommendations.

you can write in russian i can read, but dont have the function in my windows to write.
Grege
im trying to write cels_to_far(cel);
where the "cels_to_far" is the function and "cel" is the tag.
it pop-up an error: "Incompatible types"

im writing in properties>appearance>display value

and i wrote your function in cicode:

FUNCTION cels_to_far(REAL cel)
REAL value;
value=5*cel+458.0;
RETURN value;

END
ScrewDriver
какого типа у вас переменная cel? Она должна быть типа Real для написанной мной функции, но это можно поменять.
Достаточно поменять два слова REAL в функции в cicode на нужное вам.

Преобразовать любой тип можно стандартной функцией type_to_type, например: int_to_real
Допустимые типы можно посмотреть в хелпе.
Grege
cel is REAL type, the problem i cant represent it on the screen, i doing as i told before and type of display in the left side is numeric, but i'v tried string also and other types the same affect and it popups even more errors.
ScrewDriver
при компиляции щелкните на ошибке, среда разработки откроет место, где содержится эта ошибка.
Возможно дело в самом теге, драйверах и тд...
san
Кстати выражение value=5*cel+458.0 не переводит в фаренгейты, это я для примера привел


Старый добрый анегдот в тему:

Прапорщик: Снаряд летит под углом 45 градусов...
Слишком умный салага: цельсия или фаренгейта?
Прапорщик (задумчиво): цельсия
Все салаги: ха-ха-ха
Прапорщик: молодцы, шутки понимаете. Конечно же фаренгейта...

Не примите за флуд
Grege
laugh.gif
i rechecked the types and the other properties, the problem with writing cels_to_far(REAL cel); into displaying the value, ill do it easier with screen prints.
ScrewDriver
Не пишите real в свойствах numeric expression при вызове функции (1 скриншот)- там нельзя объявлять переменную.

Переменная cel у вас уже создана? Если нет, создайте как локальный тэг.
Grege
removed.

cel tag are existing and defined as REAL, and it still shows me the last error unsure.gif

if you have some time, could you open a project on your own citect and make me a backup i could see how to do so? it would be great.
ScrewDriver
the problem is i haven`t citect on my laptop, i was change system to siemens wink.gif
maybe san can help you. sorry.
also you can look to the demo projects in citect directory - it`s easy.
I think you have problem in tag properties.

And also - first of all try to show just "cel" tag without any function on main screen.
Grege
i did for my sorrow i cant understand what is the problem.
and displaying cel value i succeed, its all ok, and everything else ok until i write cels_to_far(cel);

hope san can help me rolleyes.gif
ScrewDriver
try to display tat value: cels_to_far(0.0)
Maybe i make a some mistake in function smile.gif
Grege
nothing good, the same error as before.
ScrewDriver
FUNCTION cels_to_far(real scels)
REAL value;
value=5.0*scels+458.0;
return value;

Change function - look to zero after 5 wink.gif
Hope it help wink.gif
Grege
i hoped to, but still nothing
i would like to verify, cels_to_far(real scels), scels should be defined as tag in the citect, right?
cause i did it and i cant understand why it writes that it Incompatible types.
ScrewDriver
heh, you will be surprised about citect - it most stupid scada system in the world smile.gif
it write beccause somewhere you have mistake - for example in cicode function.
i think you have problem in declaration of function or exactly in function.

Сан, потесть функцию плиз - у меня неначем smile.gif
Grege
yeah i already see stupid thing here
but i have nothing to do with it, still have to make that project on citect for my sorrow
san
я с английским не совсем дружу, к чему дошли?
ScrewDriver
у него создан тэг, типа реал - он нормально отображается на экране.
При отображении через функцию выводится ошибка о несовместимости типов.
Отображение числа 0.0 через функцию тоже приводит к ошибке о несовместимости типов.

Я так думаю ошибка или в саймой функции или в ее декларировании.

В общем Grege просит сделать демо проект с отображением локальной переменной типа real через эту функцию на экране.
san
Правильно так:

REAL
FUNCTION cels_to_far(real scels)
REAL value;
value=5.0*scels+458.0;
return value;
end

То-есть забыли казать тип возвращаемого значения и end в конце функции. все проверил - работает.
Grege
san Можете ли вы выслать мне, пожалуйста backup
на моем проекта еще что-то неправильно
san
Ловите для VijeoCitect 7.0
ScrewDriver
И это он еще remote opc не использовал smile.gif
Grege
Большое спасибо!
с вашего позволения, я напишу вам личное сообщение san. еще есть вопросы.
Grege
доброе утро

Есть функции, которые выполняют ту же функцию, как PageSelect();
с cicode или перемеными?
ScrewDriver
Ваш русский крайне непонятен smile.gif
Опять - что хотите сделать?
Grege
there is an function called PageSelect();
im looking for function that perform the same action but with list of cicode or list of variables.

is there such an option?

Hope it's much better, and i told you my russian not so well smile.gif
Good day!
starshoy2001
неясно почему не задать вопрос на англоязычном профильном форуме.
ScrewDriver
The Cicode for PageSelect() is in the Page.ci file in the Include. You could modify it into your own project to test for the string PageMenu
being returned and either rejecting it, or sending the user to some other page.

And remember - most functions in citect you can look in templates or default project scripts. Just copy it and replase parameters which you need.
Denysen
Это жесть, предлагаю юзеру прочитать мануал по Citect rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.