#include int MacroMain() { // Here to add macro code. /*В данном макросе осуществляется групповое чтение регистров аварий. Читаются регистры V400-V409 контроллера AT16S0T в регистры панели LW100-LW109 и M400-M409 в LB100-LB109. Это делается для того, чтобы сократить обмен данными и обрабатывать Аварии уже как регистры панели. В совокупности это существенно ускоряет работу по сравнению с оформлением Аварий как чтение отдельных регистров контроллера напрямую. */ // Буферный массив, куда принимаются данные от регистров V400-V409 signed short data[10]; // Буферный массив, куда принимаются данные от регистров V400-V409 bool dataBool[10]; //Команда чтения данных из регистров V400-V409. Переменная PLC_V400 // объявлена как тег к регистру контроллера V400. В инструкции длина указывается в байтах! int error = GetMem(data,@PLC_V400@,0,20); //Команда записи данных из буфера data в регистры панели LW100-LW109. // Переменная HMI_LW100 объявлена как тег к регистру панели LW100. int error1 = SetMem(data,@HMI_LW100@,0,20); // Команда чтения маркеров в контроллере. Указывается длина данных в булевых регистрах. // 10 соответствует 10 маркерам, т.е читаются М400-М409. int error2 = GetMem(dataBool,@PLC_M400@,0,10); // Команда записи из буфера в булевые регистры панели. Записывается 10 регистров, LB100-LB109. int error3 = SetMem(dataBool,@HMI_LB100@,0,10); return 0; }