1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Сенсорные панели Weintek

Модератор: специалисты Weintek

Закрыто
Аватара пользователя

skr
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 208
Зарегистрирован: 22 мар 2013, 11:52
Имя: Денис Порфирьев
город/регион: Санкт-Петербург
Поблагодарили: 6 раз

Re: Сенсорные панели Weintek

Сообщение skr »

Принято
Аватара пользователя

uni
здесь недавно
здесь недавно
Сообщения: 44
Зарегистрирован: 28 май 2015, 14:11
Имя: Мезенцев Вячеслав Николаевич
Страна: Россия
город/регион: Екатеринбург

Re: Сенсорные панели Weintek

Сообщение uni »

EasyBuilder Pro 5.02.01 от 10.09.2015 @ Windows 7 x64

Кто-нибудь знает как заставить симулятор обновлять скрипты? Почему-то при симуляции работы используются старые версии скриптов.
П.С. Окно отказа в доступе (7) не реагирует на снятие галочки "панель заголовка". Мелочь, а неприятно.
По поводу LW-9551 - Скорость COM1. Кто-нибудь знает полный комплект значений и скоростей к ним? Например, 115200 - это какое значение?

Alex0015
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 08 июн 2015, 01:00
Имя: Александр

Re: Сенсорные панели Weintek

Сообщение Alex0015 »

Не нравится хаос с описанием версий Weintek. Из-за дублирования информации в соседних Release Notes, чтение превращается в ненужный поиск отличий.

Файл:EBProV50201_ReleaseNotes_20150910_en.pdf 553 KB 10.09.2015 14:37:00
Файл:EBProV50201_ReleaseNotes_20150914_en.pdf 555 KB 16.09.2015 18:50:00

Считаю, что дублирования быть не должно. Пора перейти к описанию реальных изменений конкретной версии.
_20150910.jpg
_20150914.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

skr
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 208
Зарегистрирован: 22 мар 2013, 11:52
Имя: Денис Порфирьев
город/регион: Санкт-Петербург
Поблагодарили: 6 раз

Re: Сенсорные панели Weintek

Сообщение skr »

uni писал(а):Кто-нибудь знает как заставить симулятор обновлять скрипты? Почему-то при симуляции работы используются старые версии скриптов.
Макросы?
Может, у вас осталась незакрытой копия симулятора?
uni писал(а): По поводу LW-9551 - Скорость COM1. Кто-нибудь знает полный комплект значений и скоростей к ним? Например, 115200 - это какое значение?
Быстрей было бы в симуляторе проверить.

LW-9551 (16bit) : COM 1 baud rate (7:1200,8:2400,0:4800,1:9600,10:14400, 2:19200,11:28800,3:38400,4:57600,..)

115200 - 5, 187.5K - 6
Alex0015 писал(а):Считаю, что дублирования быть не должно. Пора перейти к описанию реальных изменений конкретной версии.
Во-первых, вы путаете поятия "версия" и "сборка".
В releasenotes EB, как правило, документ дополняется, а не пересоздаётся, если не изменился номер версии и с прошлого билда прошло меньше двух недель.
Есть утилиты для удобного сравнения pdf файлов. Попробуйте демонстрационную версию Beyond Compare
diff.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Alex0015
здесь недавно
здесь недавно
Сообщения: 36
Зарегистрирован: 08 июн 2015, 01:00
Имя: Александр

Re: Сенсорные панели Weintek

Сообщение Alex0015 »

skr писал(а): В releasenotes EB, как правило , документ дополняется, а не пересоздаётся, если не изменился номер версии и с прошлого билда прошло меньше двух недель.
Тогда надо выложить на сайте правила для версий и подверсий
skr писал(а): Есть утилиты для удобного сравнения pdf файлов. Попробуйте демонстрационную версию Beyond Compare
diff.png
не хотелось бы усложнять и заниматься поиском отличий, тем более что разработчик может написать о них напрямую
Аватара пользователя

uni
здесь недавно
здесь недавно
Сообщения: 44
Зарегистрирован: 28 май 2015, 14:11
Имя: Мезенцев Вячеслав Николаевич
Страна: Россия
город/регион: Екатеринбург

Re: Сенсорные панели Weintek

Сообщение uni »

Макросы?
Может, у вас осталась незакрытой копия симулятора?
Да, макросы. Нашёл в чём дело. После перезапуска симуляции не обнуляются RW регистры. У меня там есть флаг первоначальной загрузки, так вот, он не сбрасывается, поэтому старые настройки всегда используются. Сбросил его принудительно через монитор EasyWatch.
Быстрей было бы в симуляторе проверить.

LW-9551 (16bit) : COM 1 baud rate (7:1200,8:2400,0:4800,1:9600,10:14400, 2:19200,11:28800,3:38400,4:57600,..)

115200 - 5, 187.5K - 6
Да, не подумал об этом. А как 9 угадать? ... 28800 - по остаточному принципу упс, уже есть.
Аватара пользователя

uni
здесь недавно
здесь недавно
Сообщения: 44
Зарегистрирован: 28 май 2015, 14:11
Имя: Мезенцев Вячеслав Николаевич
Страна: Россия
город/регион: Екатеринбург

Re: Сенсорные панели Weintek

Сообщение uni »

EasyBuilder Pro 5.02.01 от 14.09.2015 @ Windows 7 x64

Кто-нибудь знает как русифицировать окно Do you wish to proceed? Это если установлена галочка "Запрос подтверждения".

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5620
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

Re: Сенсорные панели Weintek

Сообщение Ryzhij »

Системные сообщения, как правило, не русифицируются.
Из-за этого для подтверждения приходится использовать отдельный всплывающий экран.
Но, может быть, Вайнтек нас удивит?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

HWAK
здесь недавно
здесь недавно
Сообщения: 24
Зарегистрирован: 11 июл 2015, 11:51
Имя: Чирков Илья Сергеевич
Благодарил (а): 2 раза

Re: Сенсорные панели Weintek

Сообщение HWAK »

Здравствуйте, подскажите пожалуйста как правильно вставить функцию SWAPW в макрос, чтобы в полученном значении GetData поменять местами старший и младший биты и, после преобразования, отправить на SetData, в приведенном примере?

short value //
GetData(value , "Local HMI", LW, 1, 1)//
SetData(value , "Local HMI", LW, 2, 1)//
SetData(value , "Local HMI", RW, 3, 1)//
Аватара пользователя

uni
здесь недавно
здесь недавно
Сообщения: 44
Зарегистрирован: 28 май 2015, 14:11
Имя: Мезенцев Вячеслав Николаевич
Страна: Россия
город/регион: Екатеринбург

Re: Сенсорные панели Weintek

Сообщение uni »

Вот пример кода

Код: Выделить всё

sub Convert32bitValues()

    // Объём воды загр. в бак (инв).
    unsigned int Vdh = 0
    GetData( Vdh, "Панель", "Объём воды загр. в бак (инв)", 1 )
    
    SWAPW( Vdh, Vdh )
    SetData( Vdh, "Панель", "Объём воды загр. в бак", 1 )
    
    // Доза отх. для загрузки (инв).
    unsigned int Vdc = 0
    GetData( Vdc, "Панель", "Доза отх. для загрузки (инв)", 1 )
    
    SWAPW( Vdc, Vdc )
    SetData( Vdc, "Панель", "Доза отх. для загрузки", 1 )
    
    // P акт (мгн) (инв).
    int Pact = 0
    GetData( Pact, "Панель", "P акт (мгн) (инв)", 1 )
    
    SWAPW( Pact, Pact )
    SetData( Pact, "Панель", "P акт (мгн)", 1 )
    
end sub

Sidor
Сообщения: 1
Зарегистрирован: 13 июл 2015, 15:22
Имя: Сидоров Сидор Сидорович

Re: Сенсорные панели Weintek

Сообщение Sidor »

Приветствую уважаемое сообщество. Панель MT6070iH, EasyBuilder8000 v.4.65.19, в окне создал объект таймера, запускаемый по биту с ПЛК. Беда в том, что таймер живёт только в созданном окне, т.е. при переключении окон таймер сбрасывается. Прошу камнями меня не закидывать, понимаю, что есть иные способы решения задачи, но ума не хватает. Помогите.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5620
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

Re: Сенсорные панели Weintek

Сообщение Ryzhij »

Ув.Сидоров Сидор Сидорович, не стоит на панель возлагать функции ПЛК. Не для этого они.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

Jackson
администратор
администратор
Сообщения: 17466
Зарегистрирован: 17 июн 2008, 16:01
Имя: Евгений свет Брониславович
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 744 раза
Поблагодарили: 1277 раз

Re: Сенсорные панели Weintek

Сообщение Jackson »

Sidor писал(а):Помогите.
Чтобы получить честный ответ, нужно самому быть честным. Соврали про себя - на помощь не рассчитывайте.
По вопросам работы Форума можно обратиться по этим контактам.
Аватара пользователя

den_vish
освоился
освоился
Сообщения: 233
Зарегистрирован: 11 апр 2013, 13:22
Имя: Вишневский Денис
Благодарил (а): 10 раз
Поблагодарили: 12 раз

Re: Сенсорные панели Weintek

Сообщение den_vish »

[+] офф
TEB писал(а):
Sidor писал(а):Помогите.
Чтобы получить честный ответ, нужно самому быть честным. Соврали про себя - на помощь не рассчитывайте.
в смысле, в чем ересь?
"- Знаешь, дружище, в чем истинный смысл второго закона термодинамики?
Как ни упирайся, а бардака все больше. И чем серьезнее ты упираешься, тем страшнее неразбериха."(с)

Alexander
БАН
БАН
Сообщения: 642
Зарегистрирован: 03 июн 2010, 12:26
Имя: Козин Александр Елисеевич
Страна: Украина
город/регион: Одесса
Поблагодарили: 4 раза
Забанен: Бессрочно

Re: Сенсорные панели Weintek

Сообщение Alexander »

Ересь в самом Сидоре Сидоровиче Сидорове. Был бы Иванов Иван Иванович - поверили-бы в честность :)

HWAK
здесь недавно
здесь недавно
Сообщения: 24
Зарегистрирован: 11 июл 2015, 11:51
Имя: Чирков Илья Сергеевич
Благодарил (а): 2 раза

Re: Сенсорные панели Weintek

Сообщение HWAK »

Здравствуйте. Подскажите как в панели Weintek считать старший и младшие байты регистров из ПЛК? Требуется считать время и дату из ТРМ133М, а по его регистрам времени и даты (56,57) считываются зашифрованные числа, если кто сталкивался с такой задачей подскажите как правильно считать?

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5620
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

Re: Сенсорные панели Weintek

Сообщение Ryzhij »

Вы бы разузнали у Овен-а по-подробнее про формат представления RTC-данных DataTime в ТРМ133М, а то, похоже, Вы пытаетесь их обработать как иной (Word, Byte или Float).
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

HWAK
здесь недавно
здесь недавно
Сообщения: 24
Зарегистрирован: 11 июл 2015, 11:51
Имя: Чирков Илья Сергеевич
Благодарил (а): 2 раза

Re: Сенсорные панели Weintek

Сообщение HWAK »

Узнавал у представителей ОВЕНа, говорят надо искать решение этого в настройках EBpro, посоветовали изменить порядок следования байт и что передача данных RTC у них соответствует стандартам MODBUS, любое устройство с поддержкой данного протокола, при его правильной настройке должно показать текущие время и дату. Пробовал макросами через SWAPB, SWAPW и LOBYTE, HIBYTE, LOWORD, HIWORD ничего нужного не дало. Может еще есть способы в EBpro по считыванию данных RTC с контроллеров?
Аватара пользователя

skr
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 208
Зарегистрирован: 22 мар 2013, 11:52
Имя: Денис Порфирьев
город/регион: Санкт-Петербург
Поблагодарили: 6 раз

Re: Сенсорные панели Weintek

Сообщение skr »

Спецификация модбас не описывает форматы даты и времени.
Значит, представители ОВЕНа не смогли объяснить, в каком формате у них оно хранится?

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5620
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

Re: Сенсорные панели Weintek

Сообщение Ryzhij »

HWAK писал(а):Узнавал у представителей ОВЕНа, говорят надо искать решение этого в настройках EBpro, посоветовали изменить порядок следования байт и что передача данных RTC у них соответствует стандартам MODBUS, любое устройство с поддержкой данного протокола, при его правильной настройке должно показать текущие время и дату.
Фееричный бред!
Спецификации MODBUS трактуют совсем не об этом. Там есть понятия "бит", "байт" и "регистр", а что и как в них - дело пользователя.

Например, контроллер DELTA хранит информацию о реальном времени в массиве из семи регистров:

D1313 Second 0~59 Секунда
D1314 Minute 0~59 Минуты
D1315 Hour 0~23 Час
D1316 Day 1~31 День месяца
D1317 Month 1~12 Месяц
D1318 Week 1~7 День недели (1 - понедельник)
D1319 Year 0 ~ 99 Последние две цифры года

Скорее всего, и в ТРМ аналогично, но иногда порядок регистров может быть обратным, т.е. год хранится в младшем регистре, затем день недели и т.д.
Кроме того, вместо 16-разрядных регистров могут быть байты.
Исследуйте.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5620
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 544 раза
Поблагодарили: 706 раз

Re: Сенсорные панели Weintek

Сообщение Ryzhij »

И.В.Петров пишет о существовании типа Data_And_Time (или DT) занимающем 4 байта (DWORD) и содержащем время в секундах с 0 часов 1 января 1970 года.
Может именно это у Овена?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
Аватара пользователя

uni
здесь недавно
здесь недавно
Сообщения: 44
Зарегистрирован: 28 май 2015, 14:11
Имя: Мезенцев Вячеслав Николаевич
Страна: Россия
город/регион: Екатеринбург

Re: Сенсорные панели Weintek

Сообщение uni »

Выставите дату, считайте эти два регистра, приведите их значения тут. Я скажу какой формат.

HWAK
здесь недавно
здесь недавно
Сообщения: 24
Зарегистрирован: 11 июл 2015, 11:51
Имя: Чирков Илья Сергеевич
Благодарил (а): 2 раза

Re: Сенсорные панели Weintek

Сообщение HWAK »

При времени и дате 11:23:40, 08.10.15
значения регистров: 56 57
3770 и 7593


При времени и дате 00:00:00, 10.10.10
значения регистров: 56 57
48770 и 5187


При времени и дате 00:00:00, 01.01.00
значения регистров: 56 57
0 и 0
Аватара пользователя

skr
специалист по WEINTEK
специалист по WEINTEK
Сообщения: 208
Зарегистрирован: 22 мар 2013, 11:52
Имя: Денис Порфирьев
город/регион: Санкт-Петербург
Поблагодарили: 6 раз

Re: Сенсорные панели Weintek

Сообщение skr »

Количество секунд с начала 2000. Может где-то оно и стандарт.
Пишите макрос, алгоритм примерно такой, только _TBIAS_YEAR поправьте
Аватара пользователя

uni
здесь недавно
здесь недавно
Сообщения: 44
Зарегистрирован: 28 май 2015, 14:11
Имя: Мезенцев Вячеслав Николаевич
Страна: Россия
город/регион: Екатеринбург

Re: Сенсорные панели Weintek

Сообщение uni »

Попробуйте такой макрос навесить на кнопку:
[+] GetLocalTime

Код: Выделить всё

sub GetLocalTime( unsigned int time )

    bool IsLeapYear = false
    char DayOfWeek = 0, Seconds = 0, Minutes = 0, Hours = 0, n = 0
    unsigned short Year = 0, Month = 0, Day = 0
    unsigned int uiDate = 0, uiTime = 0, uiDay = 0, days_to_month = 0, days_to_year = 0, tmp = 0
    
    unsigned short DoM[12] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 }

    TRACE( "time = %d", time )

    // Переводим количество секунд в количество дней с 2000 г.
    uiDate = time / 86400
    
    TRACE( "uiDate = %d", uiDate )

    // День недели, считая от нуля.
    DayOfWeek = ( uiDate + 3 ) % 7

    // Грубо оцениваем год.
    Year = uiDate / 365

    // Убираем годы до начала отсчёта.
    tmp =  Year

    // Определяем количество дней в годах.
    days_to_year = tmp * 365 + ( tmp + 1 ) / 4 + ( tmp + 69 ) / 100 + ( tmp + 369 ) / 400

    TRACE( "days_to_year = %d", days_to_year )
    
    // Делаем уточнение.
    if uiDate < days_to_year then
        
        Year = Year - 1
        tmp =  Year
        
        // Определяем количество дней в годах.
        days_to_year = tmp * 365 + ( tmp + 1 ) / 4 + ( tmp + 69 ) / 100 + ( tmp + 369 ) / 400
        
    end if

    // Определяем день года.
    uiDay = uiDate - days_to_year + 1

    // Грубо оценим месяц.
    Month = uiDay / 29 + 1
    
    if Month > 12 then
    
        Month = 12
    
    end if
    
    // Определяем количество дней в истекших месяцах.
    n = Month - 1
    days_to_month = DoM[ n ]
    
    IsLeapYear = ( ( Year % 400 == 0 ) or ( Year % 4 == 0 ) ) and ( Year % 100 <> 0 )
    
    if Month > 2 and IsLeapYear then
    
        days_to_month = days_to_month + 1

    end if
    
    // Делаем уточнение.
    if uiDay <= days_to_month then
        
        Month = Month - 1

        n = Month - 1
        days_to_month = DoM[ n ]
               
        if Month > 2 and IsLeapYear then
        
            days_to_month = days_to_month + 1

        end if

    end if

    // Определяем день.
    Day = uiDay - days_to_month

    // Вычисляем эквивалент неполного дня в секундах.
    uiTime = time % 86400

    Seconds = uiTime % 60

    uiTime = uiTime / 60

    Minutes = uiTime % 60

    Hours = uiTime / 60
    
    TRACE( "Year = %d", Year )
    TRACE( "Month = %d", Month )
    TRACE( "DayOfWeek = %d", DayOfWeek )
    TRACE( "Day = %d", Day )
    TRACE( "Hours = %d", Hours )
    TRACE( "Minutes = %d", Minutes )
    TRACE( "Seconds = %d", Seconds )

end sub

macro_command main()

    unsigned int time = 0

    unsigned short R56 = 3770 
    unsigned short R57 = 7593

    POW( 2, 16, time )
    time = R57 * time + R56
    
    GetLocalTime( time )

end macro_command
Ссылки:
1. Программируем временные сложности
Закрыто

Вернуться в «WEINTEK (операторские панели)»