
예를 들어서 SP를 1000으로 명령을 내렸지만 Feedback 값이 비정상적으로 600~1400로 측정이 되는데 모터는 부드럽게 동작할 경우 Encoder Filter를 의심해 보아야 한다. Motion - Axes - Axis - Enc에서 Parameter탭에 보면 Filter가 있다. 현재 속도는 10ms 가속도는 100ms의 필터를 거치는것으로 확인된다. 속도를 기준으로 보면 10ms마다 엔코더의 pulse를 측정하면, 빠르게 업데이트가 가능하지만 측정값이 부정확하게 되는 단점이 있다. 오차가 크게 발생하는 부분의 필터 시간을 늘려보게되면, 오차값은 크게 줄어들게 된다. 그래서 필터 시간을 늘려보면 목표값에 수렴하는 시간이 딜레이가 생기지만 엔코더에서 발생하는 노이즈는 적어진다. 필터 시간을 더..

초기 TwinCAT을 사용하면 단위 및 Scaling Factor가 기본 값으로 되어 있어서 정확한 값을 확인하기 힘듦. Driver - Axies - Encoder에 들어가서 Parameter 탭으로 들어간다. TwinCat3에서는 Scaling Factor Numerator와 Scaling Factor Denominator항목이 있는데, 분수 개념이므로 참고. Scaling Factor의 경우 한바퀴 돌 동안의 Factor를 기입하면 되는데, 분자의 경우, 실제 디스플레이하려는 한바퀴 값을 기입하면 되며, 분모의 경우, 한바퀴 돌때 모터의 분해능을 기입하면 된다. 하단의 내용은 TwinCAT에 360도 표현을 하고, 실제 모터는 2^20 분해능을 가지고 있으므로 대입하여 계산 진행. 이 값은 Scal..
기존에는 TC2_MC2_Drive Reference Library를 사용하였다. FB_COERead의 경우 A를 선언한 다음, B를 선언하면 B는 에러가 발생하여 사용할 수 없게 되었다. TC2_EtherCAT Reference Library의 FB_EcCoESdoRead함수는 중복으로 함수를 사용 할 수 있다. SDO R/W의 경우 TC2_EtherCAT Reference Library의 FB_EcCoESdoRead함수를 사용하는 것을 추천.

1. MC_MoveAbsolute 절대적인 위치를 이동. 이동 명령을 내린뒤, 축 이동을 모니터링 하여 완료 신호를 내림. (Feedback 체크) https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclibmc2/458411147.html&id= 2. MC_MoveAdditive 현재 위치를 기준으로 상대적인 거리를 이동. 도달 여부에 상관 없이, 위치 명령을 내리고, 체크는 하지않음. (Feedback 신호 체크 안함.) * BufferMode 버퍼모드로 축이 다른 동작을 하고 있을때 명령이 끊기지 않고 메모리에 저장을 해 지속적으로 이동 할 수 있도록 지원. https://infosys.beckhoff.com/english.ph..

TwinCAT ADS를 사용하게되면 이전에 글에서 볼 수 있듯이, PDO Write 기능의 경우 ADS 모션이 상위단에서 제어를 하고 있기 때문에, PDO제어가 쉽지가 않다. 그래서 모션의 기능들을 PLC에서 불러와 ADS로 제어하는 부분으로 우회하기로 하였다. TwinCAT에서 드라이버를 Scan한 상태에서 시작. 1. PLC Project 생성 2. GVL(Gobal Variable List)를 생성하여 변수를 작성한다. - Axis1 : Axis_Ref; - Axis1 -> 변수명 - : -> 다른 텍스트 언어의 = 과 같음 (변수 대입) - Axis_Ref -> 축을 참조하기 위한 데이터 형식 - ; -> 개행 3. 해당 모션 드라이버와 3에서 생성한 GVL을 연결한다. (3-1과 3-2중 하나만..

이전에 TwinCAT Motion 함수를 PLC로 코딩해서 LabVIEW로 이용하는 방법을 알아보았는데, 이번엔 Task로 Link해서 ADS로 제어하는 법을 알아보겠다. 1. 먼저 Motion Driver를 스캔하자. ( ECAT Driver로 Scan ) 2. TwinCAT Project 하위에 Task에서 TwinCAT Task with Image을 생성한다. * TwinCAT Task with Image에서 Task의 Link를 할 수 있는 기능이 있다. 3. Task에서 Option을 체크하고 Port를 확인한다. ** Motion쪽도 Create Symbol을 활성화 하자. * Creat Symbols : Create symbols means creating variables as symbol..

LabVIEW를 실행하기전 PLC port를 체크한다. 1. LabVIEW를 실행하고 하단의 코드를 구성한다. * 간단하게 코드 구성. ( bExecute와 Read_Data로 읽고 쓰기만 구성. ) * 코드에 대해 잘 모르면 https://nadosizak.tistory.com/17 링크 확인. * AdsCreateVarHandle : 변수명으로 변수주소를 가져와서 데이터를 읽거나 쓸 수 있다. - varName : PLC 파일명.변수명 - hVar : 변수의 주소로 추측됨. * AdsSyncWrite / Read***VarReq : hVar로 데이터를 읽어옴. - (cb)length : 변수 길이 2. 실행한 TwinCAT3와 LabVIEW를 실행 시킨 뒤 제어가 되것을 확인할 수 있다.
- Total
- Today
- Yesterday
- S7+
- motion
- 버즈 플러스
- NI
- LabView
- Analog Input Range
- 태블릭
- SDO
- Device Scan
- Wadiz
- CoESdoRead
- 멜로이
- gram 16
- st
- 프로피넷
- Scaling coefficients
- TwinCAT3
- EtherCat
- 프로피버스
- ads
- daq
- 16zd90p
- profinet
- 후기
- TwinCAT ADS
- TwinCAT
- PDO
- 트윈캣
- 버즈+
- profibus
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |