Страница 403 из 765 ПерваяПервая ... 303353393401402403404405413453503 ... ПоследняяПоследняя
Показано с 4,021 по 4,030 из 7646

Тема: Вопросы начинающего

  1. #4021

    По умолчанию

    Доброго времени суток. А есть ли в Мастерскада возможность выводить число в двоичном виде? Типа "0010011000001011"?

  2. #4022

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Почему две?
    Вообщем берете источник данных, в свойствах ставите периодически, интервал сутки. В свойствах колонки задаете нужную обработку.
    Одна с минимумом, вторая с максимумом.

    Так при периодическом значении он выдаёт только одно значение и по нему начинает считать:
    Буфер обмена-1.png

    Хотя мне нужны все значения:
    Буфер обмена-2.png

    Вот код, который я использую в итоговой строке {Max(DataНА1_МоторПередГориз,НА1_МоторПередГориз.П арам1)}, но нужна только она, без вывода всех значений.
    Последний раз редактировалось ScooloV; 25.04.2017 в 07:52.

  3. #4023

    По умолчанию

    Цитата Сообщение от energvk Посмотреть сообщение
    Доброго времени суток. А есть ли в Мастерскада возможность выводить число в двоичном виде? Типа "0010011000001011"?
    Если только в скрипте преобразовать

    using System;
    using MasterSCADA.Script.FB;
    using MasterSCADA.Hlp;
    using FB;
    using FB.FBAttributes;
    using System.Collections;
    using System.Linq;


    [FBRetain]
    public partial class ФБ : ScriptBase
    {
    public override void Start()
    {
    int val = 3;
    var arr = new BitArray(BitConverter.GetBytes(val));
    string sb="b";
    for (int i=arr.Length-1;i>=0;i--)
    {
    bool b=(bool)arr[i];
    string st=b ? "1" : "0";
    sb=sb+st;
    }
    Параметр1=sb;
    }
    }
    Спасибо.

  4. #4024

    По умолчанию

    Цитата Сообщение от ScooloV Посмотреть сообщение
    Одна с минимумом, вторая с максимумом.

    Так при периодическом значении он выдаёт только одно значение и по нему начинает считать:
    Буфер обмена-1.png

    Хотя мне нужны все значения:
    Буфер обмена-2.png

    Вот код, который я использую в итоговой строке {Max(DataНА1_МоторПередГориз,НА1_МоторПередГориз.П арам1)}, но нужна только она, без вывода всех значений.
    Создаете источник данных, ставите способ формирования - Итоговый. Добавляете в него одну и ту же перемеменную дважды, у одной ставите способ обработки - максимум, у другой минимум. Все.
    Спасибо.

  5. #4025

    По умолчанию

    Каким параметром можно задать отсутствие сигнала?
    Например если есть сигнал, но в это время статус подключения датчика 0, то чтобы он не получал - должно "рубиться" (именно отсутствие сигнала, а не 0).
    В формуле нужно указать ЕСЛИ((Датчик=1), Выход, ???), или это только с помощью C# скрипта можно сделать?

  6. #4026

    По умолчанию

    Правильным вариантом - формировать признак качества (например Ошибка датчика). Для этого можно использовать ФБ "Установка признаков выхода" из раздела "Обработка сигналов".
    Если используете наши OPC, то можно формировать скриптами на уровне сервера
    Спасибо.

  7. #4027

    По умолчанию

    Пожалуйста, прокомментируйте
    Цитата Сообщение от SokolovS Посмотреть сообщение
    MasterSCADA 3.8.0.58021 3.8(DemoReleaseMin)_17_04_08_15_05
    Обратная связь для команды заставляет игнорировать её значение для опроса
    Как повторить:
    В объект добавить команду, задать ей значение до опроса и обратную связь. Запустить проект. В дереве объектов у команды не будет значения, хотя ожидается.

  8. #4028

    По умолчанию

    Проблема проявилась. Мы с ней разберемся.
    Но в любом случае в таком режиме использовать значение до опроса - не имеет смысла
    Спасибо.

  9. #4029

    По умолчанию

    Цитата Сообщение от SCADAMaster Посмотреть сообщение
    Если только в скрипте преобразовать

    using System;
    using MasterSCADA.Script.FB;
    using MasterSCADA.Hlp;
    using FB;
    using FB.FBAttributes;
    using System.Collections;
    using System.Linq;


    [FBRetain]
    public partial class ФБ : ScriptBase
    {
    public override void Start()
    {
    int val = 3;
    var arr = new BitArray(BitConverter.GetBytes(val));
    string sb="b";
    for (int i=arr.Length-1;i>=0;i--)
    {
    bool b=(bool)arr[i];
    string st=b ? "1" : "0";
    sb=sb+st;
    }
    Параметр1=sb;
    }
    }
    Отлично, почти то что нужно. Попытался привести к виду, который мне нужен (16бит). Почему-то не получилось. Добавил строку:
    Код:
    ublic override void Start()
    {
    short val = (short)in1;
    var arr = new BitArray(BitConverter.GetBytes(val));
    где in1 это входная целая переменная. Но переменная 'val' никак не меняется при изменении 'in1'. Не могу понять почему.

  10. #4030

    По умолчанию

    Потому что метод стоит Start, а не Execute
    Спасибо.

Страница 403 из 765 ПерваяПервая ... 303353393401402403404405413453503 ... ПоследняяПоследняя

Похожие темы

  1. вопросы начинающего
    от Flomaster в разделе ПЛК1хх
    Ответов: 25
    Последнее сообщение: 11.03.2015, 20:50
  2. Ethernet - вопрос начинающего.
    от Продамщебень)) в разделе Сетевые технологии
    Ответов: 8
    Последнее сообщение: 20.06.2013, 16:35
  3. вопросы начинающего
    от Chifa в разделе Сетевые технологии
    Ответов: 1
    Последнее сообщение: 30.07.2010, 14:32
  4. вопрос начинающего
    от gladkiynikita в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 22.03.2010, 05:43
  5. Вопросы
    от Мурат в разделе Эксплуатация
    Ответов: 6
    Последнее сообщение: 27.01.2007, 03:24

Ваши права

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