Страница 252 из 341 ПерваяПервая ... 152202242250251252253254262302 ... ПоследняяПоследняя
Показано с 2,511 по 2,520 из 3409

Тема: КаСкада для Андроид устройств

  1. #2511

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Andrey2 Я вот откровенно потею, когда пытаюсь разобрать код ST
    Странно слышать такое от человека, который пишет код на C#. Что такое необычное есть в ST ?

  2. #2512
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,582

    По умолчанию

    IVM ну для начала я в C# всего года 3. И в этом нет ничего странного, основная проблема СИНТАКСИС языка.
    Если человек знает синтаксис ST, то в другом языке он будет потеть, пока разберется.

    Ну вот пример С++ if (x & 8000) не будет работать в C#, потому что там надо if ( x & 8000 > 0) то есть банальные отличия в синтаксисе языков заставляют тратить время на приведение в соответствие записей. И если я не писал на ST, то как-то и не хочу
    Плюс в языках по сравнению с ST нельзя прыгать по массивам через метки, можно только в небезопасном коде, но включать этот режим не есть хорошо.
    У ПЛК то есть watchdog, если что перегрузится, а ПК или Планшет ? тупо зависнут может.

  3. #2513

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    IVM ну для начала я в C# всего года 3. И в этом нет ничего странного, основная проблема СИНТАКСИС языка.
    Если человек знает синтаксис ST, то в другом языке он будет потеть, пока разберется.

    Ну вот пример С++ if (x & 8000) не будет работать в C#, потому что там надо if ( x & 8000 > 0) то есть банальные отличия в синтаксисе языков заставляют тратить время на приведение в соответствие записей. И если я не писал на ST, то как-то и не хочу
    Плюс в языках по сравнению с ST нельзя прыгать по массивам через метки, можно только в небезопасном коде, но включать этот режим не есть хорошо.
    У ПЛК то есть watchdog, если что перегрузится, а ПК или Планшет ? тупо зависнут может.
    ST намного проще C# и спорить тут не о чем.

  4. #2514
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,582

    По умолчанию

    IVM с какого перепуга проще ? ну ка код на ST копирования из массива в массив приведите ?
    Или вот 334,56789 - сделайте из числа два числа 334 и 0,56789
    Или остаток от деления 16970/16

    Будьте любезны кодом в ST покажите простоту

  5. #2515
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    IVM с какого перепуга проще ? ну ка код на ST копирования из массива в массив приведите ?
    Или вот 334,56789 - сделайте из числа два числа 334 и 0,56789
    Или остаток от деления 16970/16

    Будьте любезны кодом в ST покажите простоту
    трунк и число минус трунк, че сложного
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  6. #2516
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,582

    По умолчанию

    https://www.owen.ru/forum/showthread...l=1#post139492

    Ну вот пример одного и того же кода на C++ (на C# просто синтаксически будет отличаться) и на ST (в коде ST отличие только в полиноме и начальном значении) Суть кода одна и та же.

    capzap остаток еще проще, mod или X%Y и всех делов. Я просто для примера, что первым в голову взбрело.

    з.ы. я к тому, что в языках многое одинаково, просто отличия в способах записи... и если человек знает что это такое при такой-то записи, то найти как это же записать на другом языке не составляет больших трудов...
    Последний раз редактировалось melky; 04.07.2019 в 11:06.

  7. #2517

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Основные операторы у всех текстовых языков одни и те же. По этой причине пользователю Каскды без разницы какой текстовый язык будет использован при разработке макросов. Разработчику Каскады нужен готовый компилятор текстового языка, который можно интегрировать в Каскаду. Тут бы В.Ситникова надо послушать, он бы мог что-то толковое посоветовать.
    1) Про Android я не особо в курсе, и с Rhino могут быть проблемы. Например, Rhino (~JavaScript) на обычной Java активно генерирует код для оптимизации вычислений. Не факт, что это всё допустимо в Android. Например, может оказаться, что Rhino запускается, но работает крайне медленно

    2) По моему опыту (разработки среды программирования на ST), ST -- неудачный язык с точки зрения системы типов. Там понамешали знаковых, беззнаковых битовых и прочих типов, при этом в стандарте нет чёткого определения того, какой тип переходит в какой.

    3) При добавлении "скриптового языка" важно определиться каким образом будет идти обращение аргументам и состоянию системы.
    Например, если пишем макрос преобразования датчика, то всё просто: у него вход это значение датчика, выход это результат обработки. И ничего другого такому блоку не нужно.
    Если же значение хочет зависеть, например, от "текущего номера экрана", то уже интереснее.

    Можно "текущий номер экрана" объявлять точно так же входным сигналом этого блока (т.е. из текстового языка разрешать обращение только ко входам). Это неплохой подход, и при этом будет сразу видно "от чего зависит блок". Но, возможно, придётся объявлять слишком много. Например, если блок зависит от времени, то удобно бы было обращаться к "текущему времени" без объявления его отдельным входом.

    И тут начинается: "всегда существующая переменная с номером экрана", "всегда существующая переменная с текущем временем" (а, возможно, это несколько переменных, т.к. переменные "час", "минута" тоже удобны, и на Android не хочется набирать длинных выражений в духе to_number(to_char(current_date(), "HH")). И к прочим системным регистрам (или как они в К* называются) тоже удобно обращаться прямо так.
    Так тоже можно делать, но главное сделать так, чтобы для каждого вычисления не приходилось заново проставлять текущие значения всех этих переменных. Ведь окажется, что выражение простое (x+y*z), а для его вычисления мы начинаем проставлять 100500 переменных (которые потом не используются).

    Вот пример кода из Apache JMeter: https://github.com/apache/jmeter/blo...java#L123-L149

    Там они для каждого выполнения скрипта проставляют 11 переменных, и делать так в К* вряд ли желаемо.
    Конечно, варианты есть, и нужно просто задуматься над этим. Как видно, в JMeter не задумались.


    По языкам же, думаю, стоит перебрать несколько популярных и посмотреть в каком состоянии есть готовые реализации для Android и не сильно ли косо будут выглядеть формулы.

    JavaScript (возможно), Lua (возможно), Python (вряд ли)

    Эзотерика в духе ClojureScript, Forth, Tcl, Eta-lang это забавно, но вряд ли для К*

  8. #2518

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    з.ы. я к тому, что в языках многое одинаково, просто отличия в способах записи... и если человек знает что это такое при такой-то записи, то найти как это же записать на другом языке не составляет больших трудов...
    Наконец-то написал что надо.

  9. #2519

    По умолчанию

    В КаСкаде 200 регистров, из себя они int. Первые 10 (от 0 до 9) это системные, там и номер экрана и бит наличия интернета и тек. время и т.д. от 10 до 199 это пользовательские.
    Лично я вижу что-то такое на javascript
    $ - обращение в сис регистры.

    $10 = $100 + $101 * Math.sqrt($102); //Метод Math.sqrt() возвращает квадратный корень числа,

    или

    var a = $10; //сначало объявим переменные
    var b = $11;
    var c = $12;
    a = b + c;

    или условие

    if ($10 > 5) { //если сис.регистр больше 5, то
    $11 = 1;
    }

    if ($10 > 7) { //если сис.регистр больше 7, то
    $11 = 2;
    }

    Чем удобен javascript движок, так это простотой и уже готовым довольно простым синтаксисом
    Вот его математический методы https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Math

    Да, надо подумать как доставать bool и float, но эти кейсы можно потом обдумать.
    Последний раз редактировалось KaScada; 04.07.2019 в 12:57.

  10. #2520

    По умолчанию

    Цитата Сообщение от KaScada Посмотреть сообщение
    В КаСкаде 200 регистров, из себя они int. Первые 10 (от 0 до 9) это системные, там и номер экрана и бит наличия интернета и тек. время и т.д. от 10 до 199 это пользовательские.
    Я, конечно, это видел, и для меня подобное не укладывается в 21-ом веке.

    По-моему, "регистры" должны именоваться, а не нумероваться.
    Ну или, если нумерация зачем-то нужна (зачем?), то хорошо бы иметь возможность называть сами регистры.

    Т.е. назвали, что вот "текущее_время", и чтобы потом можно было не вспоминать $8 это или $23. И, разумеется, у "системных регистров" должны быть названия, чтобы не ходить в документацию и не выяснять какой для чего.

    Цитата Сообщение от KaScada Посмотреть сообщение
    Чем удобен javascript движок, так это простотой и уже готовым довольно простым синтаксисом
    А плох он тем, что там нет операций с целыми. По сути, в JavaScript либо boolean, либо строки, либо float.
    Возможно, это не так и плохо, но учитывать стоит. Для пользователей может быть неприятный сюрприз при "округлениях" (см https://0.30000000000000004.com/ ).
    Например, 7/2 будет 3.5. Кому-то нужно целочисленное деление, а кому-то дробное.

Страница 252 из 341 ПерваяПервая ... 152202242250251252253254262302 ... ПоследняяПоследняя

Похожие темы

  1. МИНИ СКАДА на АНДРОИД для ПР
    от rovki в разделе Программируемые реле
    Ответов: 889
    Последнее сообщение: 17.04.2018, 09:57
  2. андроид для ПР за, против, всякого рода мнения
    от Павел Братковский в разделе Трёп (Курилка)
    Ответов: 57
    Последнее сообщение: 05.02.2016, 07:55
  3. Ответов: 14
    Последнее сообщение: 04.11.2015, 23:50
  4. Система для сбора устройств с RS232
    от darkwolf в разделе Подбор Оборудования
    Ответов: 13
    Последнее сообщение: 15.03.2015, 11:39
  5. HMI WagoID 1.1 (для Андроид) для Овен ПЛК
    от osv007 в разделе Панели оператора (HMI)
    Ответов: 2
    Последнее сообщение: 10.11.2012, 20:42

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •