Это автоматизация чего?
Nextion применил?
Это автоматизация чего?
Nextion применил?
Канал по автоматизации
https://t.me/you_engineer_asu
KaScada я не предлагаю компилятор или еще что-то, я просто предлагаю вам посмотреть как реализовано.
capzap вы опять не внимательны, были написаны примеры от балды, не связанные между собой. героев написать это на ST как это правильно пишется синтаксически не нашлось, да и х с ним....
Не суть на чем написана Каскада, суть в том, что она может использовать из ШТАТНЫХ механизмов, доступных на Андроиде. Из штатных и главное бесплатных, без изобретения велосипедов типа система работает на C# но скрипты и формулы мы будем писать на Делфи или Паскале... или мы работаем на ST но все скрипты будем делать на C++ и так далее.
Для KaScada кратенько постараюсь.
В Scada системе (язык C#) есть БД, куда попадают все значения опрашиваемых устройств либо же промежуточные значения если мы что-то считаем. Формулы всегда возвращают формат double (так как БД в этом формате). Когда система проверяет формулы (скрипты) она делает преобразование выходных данных в double. Если в формуле есть ошибки, то соответственно указывается в логе где она их нашла и система не запускается. А вот в формулах можно работать и с int и с bool и даже возвращать их (система потом значение переведет в double для БД, с этим есть некоторое неудобство, но это другая песня). В том числе, я в формуле могу даже задать using System.IO например и написать код работы с файлом.
То есть разработчик пошел не по пути изобретения скриптового языка, а о применении того же языка, на котором написан проект в том числе и для скриптов и формул.
Такое же видел еще в какой-то Scada, но там кажется был Делфи, и видел похожее на C++. То есть на чем были написаны системы, на том же языке писались и скрипты. И такой подход наиболее оптимален, хотя многим он и не нравится...
Ну с Каскадой не скажу как, тут гуру больше по яве, но если подход будет примерно таким же, то это куда лучше. Чем на один язык накладывать второй....
Последний раз редактировалось melky; 05.07.2019 в 11:06.
HMI for Android http://www.hmi-kascada.ru/kaskada/
Вот пример скрипта формулы Гистерезиса для понимания. То есть можно написать формулу и куда проще, но она будет работать только в единственном экземпляре. Здесь же есть переменные, которые системой возвращают Номер канала, на котором она используется (CnlNum).Код:int[] HysNum = new int[1]; bool[] Hys = new bool[1]; public double Hysteresis(double inCnl, double low, double high) { bool q = Val(CnlNum) > 0; int res = Array.IndexOf(HysNum, CnlNum); if (res == -1) { res = HysNum.Length; Array.Resize(ref HysNum, res+1); Array.Resize(ref Hys, res+1); HysNum[res] = CnlNum; Hys[res] = q; } if (inCnl < low) Hys[res] = true; if (inCnl > high) Hys[res] = false; return Convert.ToDouble(Hys[res]); }
И вроде бы гистерезис должен возвращать bool, но я целеноправленно его возвращаю в double (это как раз обойти ту песню, о которой говорил выше) так как тогда формулу можно применить ВНУТРИ другой формулы, что не вызовет ошибок у проверяющего. А массивы предназначены для того, чтобы ОДИН скрипт мог выполняться на любом из каналов в Scada. То есть формула одна, будь то TON, TOF, TP и т.д. а применяться может на любом канале, где это необходимо.
электронщик до мозга костей и не только
Ребята ....не отвлекаемся , есть личка ...спасибо.
электронщик до мозга костей и не только
Ну просто это немного не по теме и очень долго уже...
электронщик до мозга костей и не только
capzap, вывод СМС это уже другой движок и он есть в Каскада, насколько я понимаю. Нужно сделать (или он уже есть) соответствующий FB блок, а что в него подавать дело десяток.
з.ы. я не знаю что такое rhino и т.д. я с ява не дружу, как и с Андроидом. Но думаю там есть аналоги в функциях out string бла-бла, почему бы на блок отправки СМС не подавать текстовый вывод функции скрипта ?
Суть то не в том НА ЧЕМ реализовывать, а в том КАК.
по поводу ST, мне он не интересен, просто тут кто-то упомянул, что он легкий, я и предложил чтобы народ написал код ST для сравнения. А чтобы это было ПРАВИЛЬНЕЕ, надо взять для примера несколько функций разного рода. и каждый, кто знаком с тем или иным языком напишет
1. код на ST (ведь это предлагают внедрить в Каскаду)
2. код на С++
3. код на rhino
4. код на JS
5. код на B4A (или как там)
В общем на тех вариациях, по мнению людей, заслуживающих внимания в кандидаты скриптового языка для Каскада.
Так понятнее стали мои высказывания? или опять надо объяснять к чему я все это пишу ?
Я не говорю, что Каскада будет делать реализацию на ST, код на ST здесь нужен, чтобы люди сравнили кандидатов против ST. Потому что тут большинство асутп-шники и ST им знаком больше...
Последний раз редактировалось melky; 05.07.2019 в 14:12.
блин клинтон, о чем я написал выше. С# как и другие языки, предполагаю, что и JS не поддерживают указатели в безопасном режиме. Это только одна маленькая деталь, по которой лучше его не выбирать для Ведра... Ну выбрал автор JS, типа когда-нибудь будет делать скрипты - ну вот и славно. Спор можно закрыть и всем расслабить булки![]()
подброшу простой пример, как бы я внедрял решатель на скриптах куда либо, хоть в модбас, хоть в какой нибудь чатбот
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран