SYNCAXES - Синхронизация движения осей
Назначение этой команды - включить или отключить синхронизацию одновременного движения двух осей станка (например, осей вращения левого и правого шпинделей на токарном станке с двумя шпинделями).
Команда: SYNCAXES ON(71) | OFF(72), FirstAxisID(Axis1), SecondAxisID(Axis2)
Доступ из sppx
Обработчик: program SyncAxes
| Параметр | Массив CLD | Описание |
|---|---|---|
| IsOn | CLD[1] | Новое состояние синхронизации: 71 - синхронизация осей активна. 72 - синхронизация движения осей отключена. |
Параметры, доступные через оператор cmd
| Параметр | Тип | Описание |
|---|---|---|
| Action | Integer | Переключатель, задающий состояние синхронизации (включена/отключена): 1 - установить состояние синхронизации как включённое. 0 - установить состояние синхронизации как отключённое. |
| Axis1 | String | Строковый идентификатор первой из двух синхронизируемых осей. |
| Axis2 | String | Строковый идентификатор второй из двух синхронизируемых осей. |
Простой пример программы-обработчика для этой команды:
program SyncAxes
Outblock
a1: String;
a1 = cmd.Str["Axis1"];
a2: String;
a2 = cmd.Str["Axis2"];
if (a1="AxisCPos") or (a2="AxisCPos") or (a1="AxisC1Pos") or (a2="AxisC1Pos") then begin
if CLD.IsOn=71 then begin
GSyncSpeeds = 288; GSyncSpeeds@ = Maxreal;
Formblock;
Output Outstr$ + " (Sync spindles rotation)";
Phase = C2-C; Phase@=MaxReal;
GSyncPhase = 289; GSyncPhase@=0;
FormBlock;
output OutStr$ + " (Sync phase)";
end else begin
GsyncSpeeds = 290; GsyncSpeeds@ = Maxreal;
Formblock;
Output Outstr$ + " (Cancel spindles sync)";
end;
end;
end
Доступ из .NET
Обработчик:
public override void OnSyncAxes(ICLDSyncAxesCommand cmd, CLDArray cld)
Наследование: ICLDSyncAxesCommand : ICLDCommand.
Читайте параметры из строго типизированного объекта cmd (рекомендуется); также доступны «сырой» массив cld[i] (те же индексы, что и в sppx) и именованные помощники cmd["..."]. В таблице перечислены члены команды, включая унаследованные от базовых интерфейсов; общие члены ICLDCommand (навигация, CLD, CLDFile, TechOperation, ...) описаны в разделе Модель доступа к CLData.
| Член | Тип | Описание |
|---|---|---|
cmd.IsOn |
bool |
Содержит "true", если команда включает режим синхронного движения, иначе - "false". |
cmd.IsOff |
bool |
Содержит "true", если команда отключает режим синхронного движения, иначе - "false". |
cmd.FirstAxisID |
string |
Текстовый идентификатор первой из осей станка, между которыми выполняется синхронизация. |
cmd.SecondAxisID |
string |
Текстовый идентификатор второй из осей станка, между которыми выполняется синхронизация. |
Пример - OnSyncAxes (из постпроцессора Goodway SW):
public override void OnSyncAxes(ICLDSyncAxesCommand cmd, CLDArray cld)
{
if (SameText(CurrentOperation.TypeName, "TSTTakeoverMTM")) return;
base.OnSyncAxes(cmd, cld);
if (cmd.FirstAxisID.Contains("AxisC1") || cmd.FirstAxisID.Contains("AxisC2")){
SyncSpindles(cmd.IsOn,false);
}else
if (cmd.FirstAxisID.Contains("AxisZ1") || cmd.FirstAxisID.Contains("AxisZ2")){
SyncZ(cmd.IsOn, false);
}else{
Log.Error("Axes can not be syncronized: ("+cmd.FirstAxisID+","+cmd.SecondAxisID+")");
}
}