Проктология по фоткам
Проктология по фоткам
Передать переменные "А" и "f1" получилось с первого раза, но у меня f1 занимает 4 номер регистра, который в панели относится к системным. Непонятно как поменять номер регистра с 4 на 300 в библиотеке на ПЛК, где конкретно прописывать.
А если подумать? Там же на русском подписано даже.
Вы же выделили на скрине начальный адрес 4, следующая строка кол-во записываемых регистров 4 , из них,
два на 32 битное целочисленное типа DINT ( или DWORD или UDINT с адресом 4) и два на REAL, адрес 6.
Сравните как разбирается на байты целочисленное и как REAL и подумайте, как например передать несколько целочисленных и несколько REAL.
И как расставить байты, для правильной передачи чисел.
Последний раз редактировалось kondor3000; 25.04.2024 в 07:56.
Ну уже лучше)) а теперь замените f2 и f3 на массив f2:ARRAY [0..9] OF REAL; и сможете записать сразу 10 переменных REAL. Регистров будет уже 20.
Упаковку можно сделать компактней, каждая строка 1 REAL, напримерАналогично можно прочитать Массив любых переменных, если они идут подряд.Код:ptr_f2:=ADR(f2); buffer[1] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[0] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[3] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[2] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[5] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[4] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[7] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[6] := ptr_f2^;
Последний раз редактировалось kondor3000; 12.05.2024 в 16:30.
Я про код.Код:ptr_f2:=ADR(f2); buffer[1] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[0] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[3] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[2] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[5] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[4] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[7] := ptr_f2^; ptr_f2:=ptr_f2+1; buffer[6] := ptr_f2^;
Например почему буфферы идут не [0] [1] [2] [3] , а [1] [0] [3] [2]?
Или, что значит запись ptr_f2^?
А, что теперь осталось, чтобы получать данные с ТРМ и передавать в него же с hmi через плк63 через интерфейс?
Последний раз редактировалось kondor3000; 15.05.2024 в 19:03.
kondor3000 ,спасибо за ответы и терпение)!
Теперь получается мне надо использовать код из двух разных примеров, один для чтения с ТРМ и второй для записи в панель?
Тогда их как лучше оформить? Поместить оба в PLC_PRG или создать основную программу в CFC, а код с функцией чтения и записи оформить как два отдельных функциональных блока на ST? Но в итоге я как понимаю, что в первом, что во втором случае надо будет разобраться в коде поглубже, чтобы понять, что переименовать, что можно убрать, а что надо будет, например с функционального блока перенести в основную часть PLC_PRG