Попробуйте в настройках TCP в панели, время ожидания увеличить с 0 до 5-10 мс.
Единственное, зачем вы поставили в слейве адреса вразнобой?
Адреса лучше делать последовательно по порядку, тогда панель будет читать регистры группой.
Вид для печати
желательно чтобы в пределах одного экрана адреса шли по порядку или более менее близко, так как панель в конкретный момент времени считывает только регистры активного экранаЦитата:
что касательно адресов
на загруженных проектах может наблюдаться секундная пауза при переключениях экранов и обновления информации на них
конечно многое зависит от организации слейва и опроса, но тем не менее, когда добиваешь в чужой проект сигналами в конец слейва и проект большой, такой эффект может наблюдаться
Подскажите такой момент - есть панель оператора СП310, на которую выводится история аварий - историческая таблица. По умолчанию, сортировка данных событий идет по времени появления - самые последние внизу таблицы. Можно ли сделать так, что бы новые сообщения появлялись вверху таблицы?. Я так понимаю стандартными средствами это сделать не получится?
В СП315Р
Есть единственный глобальный Макрос с содержанием:
Помогите пожалуйста понять работу макроса.Цитата:
ReadsInt32_2_DWordInt32_2_WordInt16_2_WordDWord_2_ FloatDWord_2_Int32//chtenie float iz PLC
float ReadFloat(WORD Addr)
{
float res=0;
WORD Arr[2];
Reads(PLC, 5, MODBUS_RTU_REG_4X, Addr, 2, &Arr);
res = *(float*)(ArrValue);
return res;
}
//chtenie float iz HMI
float ReadFloatFromHMI(WORD Addr)
{
float res=0;
WORD Arr[2];
Reads(HMI_LOCAL_MCH, 2, TYPE_PSW, Addr, 2, &Arr);
res = *(float*)(Arr);
return res;
}
BeepBeepBeep
//otnoshenie rashodov
float SecCountForOneMain(WORD MainAddr , WORD SecAddr)
{DWord_2_Int32
float res=0;
float MainCount;
float SecCount;
MainCount = ReadFloat(MainAddr);
SecCount = ReadFloat(SecAddr);
if (MainCount!=0)
{res = SecCount/MainCount;}
else
{res =0.0;}
return res;
}
Вопрос возник потому что часть регистров которые читаются и пишутся с СП315Р (мастер) не поддаются изменениям через ОВЕН ОРС Сервер который подключил вместо панели.
"Перевёрнутая" таблица здесь https://owen.ru/forum/showthread.php...l=1#post224308, правда там историческая таблица не стандартная, но все сделано без использования расширенного режима сугубо стандартными средствами среды разработки.
Возможно вопрос поднимался, но найти не смог.
СП 307Б. Веду архив на USB по 6 позициям. Стояла задача писать для каждой позиции свой файл. Средствами "Архивирование на USB" не выходит. Если я делаю параллельно несколько таких функций, то все работает отвратительно. Запись происходит то по первой, то по 6й, то по 3й, с пропусками всех остальных. В рукопашную был написан скрипт, который в цикле проверяет наличие связи с устройством. Если есть связь, запись, если связи нет, то переходим к следующему. Связь есть, разрешаем запись, и так все 6 . Так и место экономим, не пишем то что не работает и запись идет четко. Если что, каждый раз записывается 14 регистров, по каждому устройству, в свой файл. Но вот только если в сети все 6 устройств, промежуток между записями, 6-7 секунд. Это терпимо, но какие то костыли и грабли. С Weintek такого не было. Возможно я что то не понял и сделал не так.
Но вот что есть проблема, так это переполнение флэшки. Памяти в 32Гб хватает на 2,5 месяца....а дальше экран зависает, намертво. Класс. В настройках нету записи в цикле, стирать старые, писать новое. Только и остаётся в ручную чистить флэшку, т.к. функционала сделать это средствами панели тоже я что то не нашел. Опять же, у того же Siemens или Weintek этот вопрос решен перезаписью старых записей.
К минусам так же отношу и то что Exel при попытке открыть файл на 2 месяца просто захлебывается, и не может вывести более 1.048.576 строк. Все что свежее, посмотреть нельзя. Ну если только не открывать .csv в каком ни будь нотепаде с потерей структуры. Возможности ограничить число строк тоже похоже нет.
В целом панель понравилась, но местами сыро. Хотя возможно и я что то не понял или есть обновления?
"это не баги, это фича". терпите короче и продолжайте колотьсяЦитата:
Хотя возможно и я что то не понял или есть обновления?
обновлений не будет.
Можно в макросе на Си работать с файлами, https://owen.ru/forum/showthread.php...l=1#post374686
Вложение 87785
Скрытый текст:
удалить файл можно функцией remove()
int remove(const char *имя_файла);
Или у ф.области есть функция "Удалить файл"
Вложение 87786
Ну а ф.область запускается с разными условиями, в том числе и от любых бит.
Во первых, пусть Вас не вводит в заблуждение название "Архивирование на USB"
На самом деле архивирование происходит в панели в регистрах, выделенных под хранилище
Вложение 87791
И только когда заполнится хранилище, т.е. когда число выборок данных достигнет значения "Число строк для одной записи"
Вложение 87792
в этот момент все хранилище будет записано в файл на USB
Если Вы вдруг решили сделать "Число строк для одной записи" равным 1, то учтите Ваша USB долго не протянет...
Нужно накапливать некоторое достаточное количество данных в хранилище панели.
Есть нюанс- если выбрать режим записи файла, например "Фиксированное имя" или "Название по дате", то каждый раз данные архива будут дописываться в конец одного и того же файла. А в структуре элемента "Архивирования" ест ошибка, в нем есть флаг заполнения хранилища и когда он установлен, то происходит запись накопленного архива на USB, однако при этом флаг не сбрасывается и это вызывает появление повторных записей в архиве. Нужно ОБЯЗАТЕЛЬНО включить галку "Очистить регистры после экспорта"
Вложение 87793
По поводуи как следствиеЦитата:
32Гб хватает на 2,5 месяца....а дальше экран зависает
Не надо все писать в один файл, есть разные режимы сохранения файловЦитата:
К минусам так же отношу и то что Exel при попытке открыть файл на 2 месяца просто захлебывается, и не может вывести более 1.048.576 строк. Все что свежее, посмотреть нельзя.
Например
Вложение 87790
Путь сохранеия архивов на USB - Archives\TEST
режим сохранения - Имя по умолчанию
таким образом в папке Archives будут накапливаться файлы
TEST0001.csv
TEST0002.csv
.......................
TEST9999.csv
Вот пример работы Архивирования на USB с возможностью удаления старых файлов
Вложение 87794
Вложение 87795
Вложение 87796 Вложение 87797
ЗЫ
По поводу
Т.к. для Архивирования на USB нет авторазмешения хранилища, то скорей всего Вы просто пишете архивы или в одну область память и адреса хранилищ пересекаются.Цитата:
Веду архив на USB по 6 позициям. Стояла задача писать для каждой позиции свой файл. Средствами "Архивирование на USB" не выходит. Если я делаю параллельно несколько таких функций, то все работает отвратительно.
Нужно правильно подсчитать начало и конец каждого хранилища вручную и указать начала в настройках
Вложение 87798
Ссылка на видио https://disk.yandex.ru/i/eg8oA-8P5tz7og
Ссылка на рутубе https://rutube.ru/video/dd691ad7f2ac...72866e487c539/
ЮТУБ:
Здравствуйте, панель СП310Р, пытаюсь разобраться с динамичской адресацией регистров (когда адрес ячейки высчитывается в завистимости от значения других регистров). Если на примере внутренних регистров (PSW) - все работает идеально.
Но если вместо PSW регистров использовать регистры ПЛК, то запись в нужную ячейку происходит корректно, но чтение из нее нет - индикатор цифрового ввода после записи показывает значение 0
Пример: Есть R обьекта = 4x2, R доп = 4x0 (значение =1), к-т = 10. Ожидаю чтения данных по 4x12 (2+1*10), запись происходит именно в 12 регистр, а чтение - нет
Что я делаю не так?
P.S. Панели под рукой пока нет, все действия выполнял в онлайн симуляции
Большое спасибо. Да, я некоторые вещи истолковал не верно. Обязательно попробую.
У меня все работает
Скрытый текст:
Добрый вечер! Вопрос. Есть ли в конфигугаторе СП300 V2.D3k-5 такая опция которая меняет в проекте все Адреса устройства, на подобии "Правка/Замена регистров"?
Так и называется - "Замена регистров"
Вложение 87831 Вложение 87832
Упс..
Адреса - нет,
Вот
Скрытый текст:
Ага, понял, что сразу менять адреса регистров с 0 по 12000 ну никак нельзя, комп зависает..))) По 1024 максимум. И почему-то адреса не переписывались с экрана, где есть переключатели с РАСШИРЕННОГО режима.
Спасибо, тупил из-за расширенного режима.
Я не менял Ваш проект
Про видео съемки
Я для иллюстрации коротких фрагментов использую для захвата видио с экрана программу oCam https://ohsoft.net/eng/ocam/intro.php?cate=1002
захват для форума делаю в формате gif
Вложение 87840
Пи этом в настройках частоту кадров для gif делаю 10..15 кадр/с
Вложение 87841
при этом размеры файлов для 800х600 получаются смешными
Вложение 87842
в Вашем профиле есть возможность создавать альбомы с картинками
Вложение 87843
В альбом загружаю полученные gif
У каждой картинки в альбоме есть ВВ-код
Вложение 87844
Копируем всю строку ВВ кода и вставляем в текст сообщения,
Вложение 87845
таким образом сделаны мои короткие видео
Посмотрел ваш приложенный проект. Да, очень интересно. Откуда правда панель берет имя файла, в списке файлов, на экране №2 я так и не понял. Разобрал, меняется элемент "текст". А где привязка хоть к чему то у этого элемента, ее нет.
Саму архивацию переделал, да, все работает хорошо. И в правду не все верно понял когда делал. Осталось победить отчистку флешки.
У вас на скриншоте есть "Delete File", у меня такого нет. Вроде и версия панели не влияет.
В наличии набор функций как и в мануале "Руководство пользователя".Вложение 87859
В мануале ни упоминания удаление файла, ни описания поддерживаемых команд для макросов нет. Такое ощущение, что у нас разные мануалы. Или вы ориентируетесь по какому то стороннему, мб от "исходной" китайской модели, про которую где то тут упоминали. Иероглифы в приложенном примере меня на эту мысль натолкнули.:rolleyes:
Если вас не затруднит, можете сказать где ознакомится или привести пример кода для макроса.
Поддерживает ли макрос удаления файла сложные имена. Т.е. что бы не сносить все, а удалять только старше N дней. Удалить *имя_Nгод_Nдень_Nмесяц*.
Все у нас одинаковое,
Смотрите, в папке Russian файл NOTE.ini
Просто добавьте нужные названия функций в секцию
[Function_Name]
.....................
Function156 = Copy File
Function157 = Delete File
Function158 = File list
Function159 = Down File
..................................
Вложение 87868
Продолжение ответа
Вы видите базовый элемент текст, тут художник сэкономил - использовал вместо стандартного символьного дисплея базовый элемент "Текст"
Посмотреть какой контент выводится в текст можно в расширенном режиме редактирования
Вложение 87871
Из этого следует, что в качестве контента(содержания) в текст выводится строка из 20 байт(10 регистров) с адреса PCW126
т.е. можно было использовать стандартный символьный дисплей
Вложение 87872
Тут мне непонятно, о каком макросе идет речь, в моем примере нет макросов, если только считать графическим макросом "текст + READ"Цитата:
Если вас не затруднит, можете сказать где ознакомится или привести пример кода для макроса.
ли речь идет о функции remove() и использования ее в макросе на си?
В примере с использованием элемента "Перечисление", что я привел, Вы не сможете увидеть в списке файлы *имя_Nгод_Nдень_Nмесяц*, здесь классика для фат32 - Максимальная длина имени = 8.3.Цитата:
Поддерживает ли макрос удаления файла сложные имена. Т.е. что бы не сносить все, а удалять только старше N дней. Удалить *имя_Nгод_Nдень_Nмесяц*.
Таким образом Вы увидите в списке имена типа "имя_Nг~1.csv", "имя_Nг~2.csv" и т.д.
При использовании макроса на Си с функцией remove() - не знаю, я в Си дилетант
Функция remove стандартная для си, https://www.c-cpp.ru/books/udalenie-faylov
Код:char fname[80];
printf ("Name of file to remove: ");
gets(fname);
if(remove(fname)) {
printf("Error removing file");
return 1;
}
else return 0;
}
А вот оно что.
День просидел, запарился, сделал чистку.
Имеем:
6 папок по позициям, в каждой папке ведем запись 1 файл на 1 стуки по определенной позиции. Как чистить отдельную папку, это я решил, костылей на травмпункт хватит. Так же отчистка идет не всех, а только самых старых записей. Оставляем нетронутыми 4 самых свежих, мало ли кто что захочет посмотреть. Но, СП-307 наносит удар прям по :mad: Регистр ошибки экспорта в "Архивирование на USB". Если флешку выдернуть, да, ругается нет флешки, код ошибки "1". Нашел флешку на 128мб. Забил её под завязку, оставив 20байт что бы панель хоть что то начала писать. Вставляю, пишет и.....тормоза, а статус записи "ОК", код ошибки "0". Вынимаю флешку, смотрю, свободного места 0 байт. Приехали.:(
Пока мысли только городить еще один костыль, и замерять время записи. Если при чистой флешке запись занимает доли секунды, то при забитой, 2-3. Отсюда делать какие то выводы.
P.S. Все получилось.
Для каждой позиции своя папка, и того 6 папок.
В каждой папке ведется свой архив. Новый файл каждые стуки.
При переполнении флешки, фиксирую её переполнение через задержку записи. Она возрастает до 3-4 секунд.
Каждая папка отчищается индивидуально. Остаются последние 4 записи.
Моё участие или оператора для всего этого действа не требуется.
Моя признательность petera, без ваших подсказок не справился бы.
А как активируется этот "расширенный режим редактирования"?
Добрый день коллеги. Подскажите возможно ли залить проект в панель СП307 с помощью Ethernet кабеля. В руководстве не нашёл информации.
Спасибо.
Есть, в симуляторе вместо флешки (0) используете 0 -диск С, 1-диск D и т. д.
Не делайте запись каждую секунду, копите в оперативке и сбрасывайте не чаще раза в минуту, лучше реже, иначе флешку быстро загубите.
Если пишите тренд (таблицу) в автообласти, то прямо из него экспортируйте на флешку.
Пример подсчёта используемых регистров здесь https://owen.ru/forum/showthread.php...l=1#post320520