Цитата Сообщение от Sulfur Посмотреть сообщение
Владимир Ситников
Начал испытания в железе на столе. Обнаружил проблему с обменом.
Когда обращаюсь так:
Код:
Enc:=ENCODER_AND_COUNTER_Pru0MemoryTransfer.PRU_ENCOER_COUNTER_Enc_Position;(*Показания энекодера*)
имею пустые данные, т. е. обмена нет. Как со входными, так и с выходными данными.
Когда обращаюсь так:
Код:
ENCODER_AND_COUNTER_Pru0MemoryTransfer(
	PRU_ENCOER_COUNTER_DO3:=FDO3 , (*Прямое управление выходом FDO3*)
	PRU_ENCOER_COUNTER_DO4:=FDO4 , (*Прямое управление выходом FDO4*)
	PRU_ENCOER_COUNTER_count_Enable:=RunTransport ,(*Запуск транспорта*)
	PRU_ENCOER_COUNTER_count_Lenght:= Lenght ,(*Пройденный путь*)
	running=> ,
	writeFails=> , 
	readFails=> , 
	PRU_ENCOER_COUNTER_Enc_Position=>Enc ,(*Показания энкодера*)
	PRU_ENCOER_COUNTER_Enc_ZeroDetect=>ZeroDetect ,(*Обнаружение машинного нуля*)
	PRU_ENCOER_COUNTER_count_Path=>Path );(*Пройденный путь транспорта*)
То проблем нет, всё работает нормально.
В обоих случаях компиляция происходит без ошибок и предупреждений.
Вполне допускаю, что напутал с синтаксисом в первом случае.
наверное в первом случае просто присваиваете одной переменной выход ПОУ, а во втором выполняете ПОУ