Доброе время суток всем.
Есть панель СП 315 Р. И макрос, который по нажатию кнопки задает значение PFW регистру.
Работающий код
float heatTable[32]; //2 word for one float cell. Use two cell. 16 rows.
WORD test;
SetPSB(350);
//Fill heating table;
heatTable[0] = 0.25;
heatTable[1] = 0.15;
//Copy all to PFW regs.
Writes(HMI_LOCAL_MCH, 2, TYPE_PFW, 306, 64, &heatTable);
//Fill all tables memory.
test = 5;
for(i = 0; i < 256; i++)
{
Write(HMI_LOCAL_MCH, 2, TYPE_PFW, 370 + i, 1, TYPE_WORD, test);
}
ResetPSB(350);
Вопрос
Что за не документированные параметры в функции Writes ?
Если написать
Writes(HMI_LOCAL_MCH, 0, TYPE_PFW, 306, 64, &heatTable); -работать ни чего не будет
Если написать
Writes(HMI_LOCAL_MCH, 2, TYPE_PFW, 306, 64, &heatTable); все копируется.
Так и должно быть, или рискую сломать панель?
Т.е. меняем 0 на 2 все работает, хотя в документации ни чего об этом не сказано.
И я так понимаю комментарии на русском языке не работают в макросах? После сохранения превращаются в кракозябры.
Может ли Reads скопировать 200 регистров из PFW в PSW? что бы цикл не писать
Есть встроенный компилятор макросов, достаточно им проверить. Русский в макросах не поддержан.
А вообще то, копировать что угодно можно без макросов, с помощью ФО (функц. области) и проверить в эмуляции можно, в отличие от макросов.
Например копировать группу регистров с адреса 300 кол-во 100 штук, по биту управления.
Последний раз редактировалось kondor3000; 31.07.2024 в 15:16.
Код компилируется с любым параметром для функции Writes. И прекрасно загружается в панель.
Writes(HMI_LOCAL_MCH, 2 <--
Можно 0 задать, все соберется, но на панели работать не будет, хоть и успешно загрузиться.
Вот и вопрос - почему в документации написано 0, но по факту работает только 2. Панель Slave.
А если мне нужно передать на ПЛК группу регистров по нажатию на кнопку, предварительно проверив что там ввел пользователь - зачем дополнительно создавать функциональную область,
если все можно поместить в один макрос. И сначала проверить, а потом скопировать. Таблица может содержать до 30 значений.
Причем проверить стандартными средствами это не возможно, вдруг кому то захочется отправиться в прошлое в центре таблицы, и задаст время меньше чем было на прошлом этапе. Что не допустимо.
Последний раз редактировалось Ventor; 31.07.2024 в 15:38.
Здравствуйте, панель 2016 года выпуска СП307Б.
Не сохраняется проект в памяти, плсле длительного отключения питания.
А батарейка не причём?
Добрый день. Подскажите пожалуйста, как в исторической таблице настроить отображение даты возникновения события в формате: день-месяц-год, а не наоборот?