В моем коде я хочу проверить, включена ли быстрая остановка оси. Эту опцию можно установить, если вы выберете ДВИЖЕНИЕ > Оси > {Ваша ось} и откроете вкладку Параметры. Я пытался найти эти опции в параметрах процесса, которые можно считать с помощью CoE, но этих опций там нет.
Когда вы наводите курсор на параметр, отображаются индекс и смещение, но я не уверен, как и где это можно прочитать.





Это достигается с помощью функционального блока MC_ReadParameter.
Соответствующие параметры таковы:
AxisFastStopSignalType, (* dword *) (* IndexOffset= 16#0000_001E *)
AxisFastAcc, (* lreal *) (* IndexOffset= 16#0000_010A *)
AxisFastDec, (* lreal *) (* IndexOffset= 16#0000_010B *)
AxisFastJerk, (* lreal *) (* IndexOffset= 16#0000_010C *)
Чтобы уточнить ответ Джейкоба, полный рабочий пример.
Примечание. Для ParameterNumber вам нужно использовать ENUM MC_AxisParameter, использование целого числа напрямую, например _maxVelocityIndex : INT := 16#0000_0027;, не работает.
VAR
axisRef : REFERENCE TO AXIS_REF;
_mcReadDriveParameter : MC_ReadParameter;
_maxVelocity : LREAL;
END_VAR
_mcReadDriveParameter(
Axis:=axisRef,
Enable:=TRUE,
ParameterNumber:=MC_AxisParameter.AxisMaxVelocity
);
IF _mcReadDriveParameter.Error THEN
// Implement error handling
...
// Disable the fucntion block again
_mcReadDriveParameter(Axis:=axisRef, Enable:=FALSE);
ELSIF NOT _mcReadDriveParameter.Busy THEN
_maxVelocity := _mcReadDriveParameter.Value;
_mcReadDriveParameter(Axis:=axisRef,Enable:=FALSE);
END_IF