모션 변경 다이내믹(Motion Change Dynamics, MCD)
이 정보는
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 및 ControlLogix 5590 컨트롤러에 적용됩니다.모션 변경 다이내믹(Motion Change Dynamics, MCD) 명령어를 사용하여 진행 중인 이동 프로파일 또는 조그 프로파일의 속도, 가속률 또는 감속률을 선택적으로 변경합니다.
아키텍처 | 표준 | 안전 |
|---|---|---|
CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 및 GuardLogix 5570 컨트롤러 | 예 | 아니요 |
CompactLogix 5380, ControlLogix 5580, Compact GuardLogix 5380, GuardLogix 5580 및 ControlLogix 5590 컨트롤러 | 예 | 아니요 |
사용 가능한 언어
래더 다이어그램

펑션 블록
이 명령어는 함수 블록에서 사용할 수 없습니다.
구조화된 텍스트
MCD(Axis, MotionControl, MotionType, ChangeSpeed, Speed, ChangeAccel, AccelRate, ChangeAccelJerk, AccelJerk, ChangeDecelJerk, ChangeDecel, DecelRate, SpeedUnits, AccelUnits, DecelUnits, JerkUnits)
피연산자
명령어 내에서 혼합된 데이터 유형을 위한 데이터 변환 규칙이 있습니다. 데이터 변환 항목을 참조하십시오.
래더 다이어그램과 스트럭쳐드 텍스트
피연산자 | 유형
팁:
AXIS_CONSUMED는
Compact GuardLogix 5580 및 CompactLogix 5380 컨트롤러에서만 지원됩니다. | 유형
팁:
AXIS_GENERIC은
ControlLogix 5570 및 GuardLogix 5570 컨트롤러에서만 지원됩니다. | 형식 | 설명 |
|---|---|---|---|---|
Axis | AXIS_CIP_DRIVE AXIS_VIRTUAL | AXIS_CIP_DRIVE AXIS_VIRTUAL AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC_DRIVE | 태그 | 작업을 수행할 축의 이름. REF_TO 모션 데이터 유형을 지원하는 컨트롤러의 경우 지원되는 축 피연산자 유형을 등가 REF_TO 유형으로 대체할 수 있습니다. |
Motion Control | MOTION_INSTRUCTION | MOTION_INSTRUCTION | 태그 | 명령어 상태 파라미터에 액세스하는 데 사용되는 구조. |
Motion Type | UDINT | UDINT | 즉시 | 변경할 모션 프로파일(조그 또는 이동). 다음 중 하나를 선택합니다. 0 = 조그 1 = 이동 |
Change Speed | BOOLEAN | BOOLEAN | 즉시 | 속도 변화를 활성화하려면 설정합니다. 다음 중 하나를 선택합니다. 0 = 아니요 1 = 예 |
Speed | REAL | REAL | 즉시 또는 태그 | % 또는 속도 단위로 표시되는, 축을 이동하는 새로운 속도. |
Change Accel | BOOLEAN | BOOLEAN | 즉시 | 가속도 변화를 활성화하려면 설정합니다. 다음 중 하나를 선택합니다. 0 = 아니요 1 = 예 |
Accel Rate | REAL | REAL | 즉시 또는 태그 | % 또는 가속도 단위로 표시되는 축의 가속률. |
Change Decel | BOOLEAN | BOOLEAN | 즉시 | 감속도 변화를 활성화하려면 설정합니다. 다음 중 하나를 선택합니다. 0 = 아니요 1 = 예 |
Decel Rate | REAL | REAL | 즉시 또는 태그 | % 또는 감속도 단위로 표시되는 축의 감속률. 이동이 진행 중일 때 가속도를 줄이면 축이 목표 위치를 오버슈트할 수 있습니다. |
Change Accel Jerk | SINT, INT 또는 DINT | SINT, INT 또는 DINT | 즉시 | 0 = 아니요 1 = 예 |
Accel Jerk | SINT, INT, DINT 또는 REAL | SINT, INT, DINT 또는 REAL | 즉시 또는 태그 | 가속 저크 피연산자 값을 반드시 입력해야 합니다. 이 명령어는 프로파일이 S-곡선으로 구성된 경우에만 값을 사용합니다. 가속 저크는 축의 가속 저크율입니다. 이 값을 사용하여 시작하십시오. 가속 저크 = 100 (시간 비율(%)) 저크 단위 = 2 |
Change Decel Jerk | SINT, INT 또는 DINT | SINT, INT 또는 DINT | 즉시 | 0 = 아니요 1 = 예 |
Decel Jerk | SINT, INT, DINT 또는 REAL | SINT, INT, DINT 또는 REAL | 즉시 또는 태그 | 감속 저크 피연산자의 값을 반드시 입력해야 합니다. 이 명령어는 프로파일이 S-곡선으로 구성된 경우에만 값을 사용합니다. 감속 저크는 좌표 시스템의 감속 저크율입니다. 다음 값을 사용하여 시작합니다. 감속 저크 = 100 (시간 비율(%)) 저크 단위 = 2 |
Speed Units | DINT | DINT | 즉시 | 속도 값을 표시하기 위해 사용되는 단위. 다음 중 하나를 선택합니다. 0 = 단위/초 1 = 최대 속도 비율(%) 4 = 단위/마스터 단위 |
Accel Units | DINT | DINT | 즉시 | 가속도 값을 표시하기 위해 사용되는 단위. 다음 중 하나를 선택합니다. 0 = 단위/초 2 1 = 최대 가속도 비율(%) 4 = 단위/마스터 단위 2 |
Decel Units | BOOLEAN | BOOLEAN | 즉시 | 감속도 값을 표시하기 위해 사용되는 단위. 다음 중 하나를 선택합니다. 0 = 단위/초 2 1 = 최대 감속 비율(%) 4 = 단위/마스터 단위 2 |
Jerk Units | SINT, INT 또는 DINT | SINT, INT 또는 DINT | 즉시 | 0 = 단위/초 3 1 = 최대값 비율(%) 2 = 시간 비율(%) 4 = 단위/마스터 단위 3 6 = 시간 마스터 구동 비율(%) |
구조화된 텍스트
스트럭처드 텍스트 내 식의 구문에 대한 자세한 내용은 구조화된 텍스트 구문 항목을 참조하십시오.
사용 가능한 옵션을 선택해야 하는 피연산자에 대한 선택 항목을 입력합니다.
피연산자 | 다음 옵션은 | |
|---|---|---|
텍스트로 입력 | 숫자로 입력 가능 | |
축 | 열거형 없음 | Tag |
MotionControl | 열거형 없음 | Tag |
MotionType | 조그 이동 | 0 1 |
ChangeSpeed | 아니요 예 | 0 1 |
속도 | 열거형 없음 | Immediate or Tag |
ChangeAccel | 아니요 예 | 0 1 |
AccelRate | 열거형 없음 | Immediate or Tag |
ChageDecel | 아니요 예 | 0 1 |
DecelRate | 열거형 없음 | Immediate or Tag |
ChangeAccelJerk | 열거형 없음 | 0 = No 1 = Yes |
AccelJerk | 열거형 없음 | Immediate or tag You must always enter a value for the Accel operand. This instruction only uses the value if the Profile is configured as S-curve. Use this value to get started. Accel Jerk = 100 |
ChangeDecelJerk | 열거형 없음 | 0 = No 1 = Yes |
DecelJerk | 열거형 없음 | Immediate or tag You must always enter a value Decel Jerk operand. This instruction only uses the value if the Profile is configured as S-curve. Use this value to get started. Decel Jerk = 100 |
SpeedUnits | unitspersec %ofmaximum unitspermasterunit | 0 1 4 |
AccelUnits | unitspersec 2 %ofmaximum unitspermasterunit 2 | 0 1 4 |
DecelUnits | unitspersec 2 %ofmaximum unitspermasterunit 2 | 0 1 4 |
JerkUnits | unitspersec 3 %ofmaximum %oftime unitspermasterunit 3 %oftimemasterdriven | 0 1 2 4 6 |
MOTION_INSTRUCTION 구조
니모닉 | 설명 |
|---|---|
.EN (Enable) Bit 31 | 렁이 거짓에서 참으로 전환할 경우 설정되며 서보 메세지 전환이 완료되어 렁이 거짓이 될 때까지 설정된 상태로 유지됩니다. |
.DN (Done) Bit 29 | 축 변경 다이내믹이 성공적으로 시작되지 않았을 때 설정됩니다. 명령어 실행은 단일 스캔에서 완료되며 DN 비트가 즉시 설정됩니다. |
.ER (Error) Bit 28 | 구성되지 않은 축을 지정한 경우 등 명령어가 에러를 감지했음을 나타내도록 설정됩니다. |
설명
MCD 명령어는 즉석에서 프로파일 이동 속도를 변경하고 사다리꼴 프로파일 조그의 속도, 가속도, 및 감속도를 즉석에서 변경합니다. 원하는 물리적 축과 모션 유형을 선택하고 속도, 가속도 및 감속도에 대한 값 또는 태그 변수를 입력합니다. 속도, 가속도 및 감속도 값은 현재 구성된 최대값의 백분율로 입력하거나 축의 구성된 속도 또는 가속도 단위로 직접 입력할 수 있습니다.
대상 지정된 축이 사용 가능한 축 목록에 없으면 축이 서보 작업에 대해 구성되지 않은 것입니다. 태그 편집기를 사용하여 새 축을 만들고 구성합니다.
프로그래밍 가이드라인
중요:
속도 및/또는 끝 위치 오버슈트 위험
이동 다이내믹[모션 변경 다이내믹(Motion Change Dynamics, MCD) 명령어 또는 모션 조정 변경 다이내믹(Motion Coordinated Change Dynamics, MCCD)]를 변경하거나 마지막 명령어가 완료되기 전에 새로운 명령어를 시작하는 등의 방법을 사용하여 이동 파라미터를 동적으로 변경하는 경우 속도 및/또는 끝 위치 오버슈트 위험이 발생할 수 있다는 점을 알아두십시오.
사다리꼴 속도 프로파일은 이동이 감속 중이거나 감속 시점에 가까워지는 상태에서 최대 감속도가 감소하면 오버슈트할 수 있습니다.
S-곡선 속도 프로파일은 다음 경우에 오버슈트할 수 있습니다.
이동이 감속 중이거나 감속 시점에 가까워지는 상태에서 최대 감속도가 감소하는 경우 또는
최대 가속 저크가 감소하고 축이 가속 중인 경우 그렇지만 시간 비율(%)로 저크가 지정된 경우 저크가 간접적으로 변경될 수 있습니다.
자세한 내용은 축 모션 문제 해결을 참조하십시오.
이 전환 명령어에서 명령어를 실행해야 할 때마다 릴레이 래더가 렁-입력-조건을 해제에서 설정으로 전환합니다.
이동 다이내믹 변경
이동의 모션 유형을 입력 또는 선택하면 진행 중인 이동의 속도, 가속도 및/또는 감속도를 지정한 값으로 변경할 수 있습니다. 새 속도가 현재 속도보다 빠른 경우에는 지정된 가속률로, 새 속도가 현재 속도보다 느린 경우에는 지정된 감속률로 속도 변화가 발생합니다.
이동 일시 중지
MCD 명령어는 속도를 0으로 변경해 진행 중인 이동을 일시적으로 중지하는 데 사용할 수 있습니다. 원래 지정된 대로 이동을 완료하려면 0 이외의 속도 값과 함께 다른 MCD 명령어를 사용합니다.
조그 다이내믹 변경
조그의 모션 유형을 입력 또는 선택하면 진행 중인 조그의 속도, 가속도 및/또는 감속도를 지정한 값으로 변경할 수 있습니다. 새 속도가 현재 속도보다 빠른 경우에는 지정된 가속률로, 새 속도가 현재 속도보다 느린 경우에는 지정된 감속률로 속도 변화가 발생합니다.
모션 드라이브 시작(Motion Drive Start, MDS) 명령어 지원
MCD 명령어는 모션 드라이브 시작(MDS) 명령어를 지원합니다. 그러나 모션 플래너가 직접 명령 속도 속성에서만 값을 가져와 드라이브로 합계 명령을 보내기 전에 축 출력으로 합산하기 때문에 MCD 명령어는 DirectVelocityControlStatus 명령 기능에 영향을 미치지 않습니다. 가속도 및 감속도가 모두 계획되면 MCD 명령어는 기능에 영향을 미치지 않습니다.
MDSC와 마스터 구동 속도 제어(Master Driven Speed Control, MDSC)의 시간 구동 모드 간 변경
MCD 명령어로 마스터 구동 모드에서 시간 구동 모드로 또는 그 반대로 변경할 수 없습니다. 모드 변경을 시도할 경우 런타임 에러가 표시됩니다.
연산 상태 플래그에 영향
아니요
주 폴트/부 폴트
이 명령어에만 해당되는 것은 없습니다. 초기화되지 않은 참조 또는 잘못된 유형의 참조가 축 피연산자로 전달되면 주 폴트가 발생할 수 있습니다. 피연산자 관련 폴트에 대해서는 공통 속성 항목을 참조하십시오.
실행
래더 다이어그램
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | .EN, .DN, .ER 및 .IP 비트는 거짓으로 해제됩니다. |
렁-입력-조건이 거짓임 | .DN 또는 .ER 비트가 참인 경우 .EN 비트는 거짓으로 해제됩니다. |
렁-입력-조건이 참임 | .EN 비트가 참으로 설정되고 명령어가 실행됩니다. |
사후 스캔 | N/A |
구조화된 텍스트
조건/상태 | 수행한 작업 |
|---|---|
사전 스캔 | 래더 다이어그램 표의 사전 스캔을 참조하십시오. |
정상 실행 | 래더 다이어그램 표에서 렁-입력-조건이 거짓이고 이어서 렁-입력-조건이 참인지 확인하십시오. |
사후 스캔 | 래더 다이어그램 표에서 사후 스캔 섹션을 참조하십시오. |
에러 코드
모션 명령어는 모션 에러 코드 .ERR 항목을 참조하십시오.
런타임 에러 조건
마스터 구동 속도 제어(Master Driven Speed Control, MDSC) 기능의 경우 시스템 모드를 마스터 구동에서 시간 구동으로, 아니면 시간 구동에서 마스터 구동으로 변경하려고 시도하면 런타임에 에러가 발생합니다.
확장 에러 코드
확장 에러 코드는 여러 명령어에 일반적인 에러 코드에 대한 추가 명령어 관련 정보를 제공합니다. 모션 명령어는 모션 에러 코드 .ERR 항목을 참조하십시오.
범위를 벗어난 파라미터(13) 에러 코드의 확장 에러 코드는 위에서 아래로 화면에 나열되는 피연산자 번호를 나타내는 숫자를 표시합니다. 여기서 첫 번째 피연자의 번호는 0입니다. 따라서 MCD 명령어의 경우 확장 에러 코드 4가 속도 피연산자의 값을 가리킬 수 있습니다. 그런 다음 명령어에 허용된 값 범위를 참조하여 값을 확인해야 합니다.
에러 코드 54 – 최대 감속도 값이 0인 경우 확장 에러에서 양수(0-n)가 반환되면 좌표 시스템의 문제 있는 축을 지칭합니다. 좌표 시스템 속성의 일반 탭으로 이동하여 축 그리드의 괄호([ ]) 열을 아래를 보고 최대 감속도 값이 0인 축을 확인합니다. 문제의 축 옆에 있는 줄임표 단추를 클릭하여 축 속성 화면에 액세스합니다. 다이내믹 탭으로 이동하여 최대 감속도 값을 적절히 변경합니다. 확장 에러 번호가 -1이라면 좌표 시스템의 최대 감속도 값이 0이라는 의미입니다. 좌표 시스템 속성의 다이내믹 탭으로 이동하여 최대 감속도 값을 수정합니다.
MCD에 의한 상태 비트 변경
마스터 구동 속도 제어(Master Driven Speed Control, MDSC) 펑션의 경우 MCD가 실행되면(IP 전환) MAM 명령어에서 상태 비트(CalculatedDataAvailable(CDA))가 지워져 이벤트 거리가 계산되었음을 나타냅니다. MCD가 완료되고 이벤트 거리가 다시 계산되면 CalculatedDataAvailable 상태 비트가 다시 설정됩니다. 따라서 MCD 명령어가 완료된 후 CalculatedDataAvailable 상태 비트를 살펴보고 재계산된 이벤트 거리를 사용할 시점을 확인합니다.
MCD가 실행되면 CDA 비트가 지워집니다. 새로운 다이내믹 파라미터를 사용하여 이동의 계산 데이터가 다시 계산됩니다. 계산이 완료되면 CDA 비트가 다시 설정됩니다. 재계산된 계산 데이터는 MCD 지점에서가 아니라 MCD 명령어로 변경되므로 새 다이내믹 파라미터를 사용하여 원래 모션 시작점(MSP)에서 이벤트 거리 지점으로 측정됩니다.
MCD가 속도를 0으로 변경하면 이벤트 거리가 재계산되지 않고 CDA 비트가 설정되지 않습니다. 그러나 이벤트 거리는 두 번째 MCD가 실행되어 모션이 다시 시작되면 재계산됩니다. 다시 계산된 계산 데이터에는 모션이 중지된 기간이 포함됩니다.
이벤트 거리를 0으로 설정하면 계산 데이터가 이동 길이와 같은 위치와 같도록 설정됩니다. 이것은 내부 지연으로 인해 PC 비트가 설정되기 전에 하나 또는 두 개의 대략적인 업데이트 기간이 될 수 있습니다. 보통 기본 업데이트 기간 중간 무렵에 끝 위치에 도달하므로 결과적으로 추가되는 기본 업데이트 기간이 지연됩니다. 따라서 마스터가 계산된 데이터와 동일한 거리만큼 이동한 경우 슬레이브 이동의 PC 비트가 설정될 때까지 최대 2회 반복을 기다려야 합니다.
예
예 1
래더 다이어그램

구조화된 텍스트
MCD(Axis1,MCD_1,Move,Yes,75,Yes,50,No,0,No,0,No,0,%ofMaximum,%ofMaximum,%ofMaximum,%ofMaximum);
예 2
래더 다이어그램

구조화된 텍스트
MCD(Axis1,mcd_motion_ctrl,Move,Yes,2,Yes,1,No,100,Yes,100.0,Yes,100.0,%ofMaximum,%ofMaximum,%ofMaximum,%ofTime);
의견을 작성 부탁드립니다.