본문 바로가기

반응형

자동제어

PC제어프로그램 5일차 (20.05.14) - 기본코딩2 변수 선언 연습 /*파일: year.c 변수 선언 연습*/ #include #include int main(void) { time_t t=time(NULL); struct tm tm = *localtime(&t); int year; int month; int date; year = 2020; month = tm.tm_mon+1; // month = 5; date = 14; printf("오늘 날짜는 %d년 %d월 %d일 입니다.\n", year, month, date); printf("now: %d-%d-%d %d:%d:%d\n", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); return 0; } 문자형 변수 선.. 더보기
PC제어프로그램 5일차 (20.05.14) - 기본코딩1 /*printf2.c 정수표현식 출력1 */ #include int main(void) { printf("%d \n", 1234); return 0; } /* print2_1.c */ #include int main(void) { printf("%d %d \n",10,20); return 0; } /* printf3.c 정수표현식 3 */ #include int main(void) { printf("Hello Everybody \n"); printf("%d \n", 1234); printf("%d %d \n", 10, 20); return 0; } 콘솔창을 보면 Debug 창에 아래와 같이 표시된다. --------------------Configuration: printf3 - Win32 Debug--.. 더보기
Visual C++ 6.0 단축키 Visual C++ 6.0 에서 자주 쓰는 단축키 Tab 들여쓰기,자동완성 Shift+Tab 내어쓰기 블록 설정 >> Tab 선택된 블록의 문자열을 일괄적으로 들여쓰기(Tab) 적용 블록 설정 >> Shift+Tab 선택된 블록의 문자열을 일괄적으로 내어쓰기 적용 F2 설정된 북마크로 이동 F2 설정된 다음 북마크로 이동 F3 다음 단어 찾기 F4 다음 에러메세지로 이동 F5 Debugging 모드로 작동 F9 현재 라인에 BreakPoint를 설정/해제 F10 Debugging 모드로 작동하되 엔트리 포인트부터 시작 F12 마우스 오른쪽 버튼 눌렀을때 go to definition 단축기 Ctrl+Up/Down Arrow 커서는 고정시키고 화면만 스크롤 시키기 ctrl+*(맨오른쪽 부분) 위에서 F12.. 더보기
로봇제어 4일차(0512) - 서보모터제어 모터전원 엔코더 연결 볼 스크류 센서 (빨강) 3개 - 상한 하한을 잡아주는 센서 중간에는 도그 센서 상승한계센서 GX Works2 실행 - 프로젝트 생성 후 - plc와 연결 시킨 후 (Ctrl + F11) 접속대상 - connection 실행 - 통신테스트, plc직결설정 클릭해서 통신 성공하는 지 확인한다. 프로젝트 - plc 파라미터 - 메인 프로그램 올리고 - I/O 할당 설정(PLC 데이터 읽기) 모터를 눌러본다. 세기를 늘리면 버티는 힘이 생겨서 움직이지 않는다. 구동을 시켜 보자 inteligent function modul - new module 파라미터 설정을 아래와 같이 한다. opr : 원점복귀 기본 파라미터 우리가 설정한 값으로 하면 부방향이면 위로 올라간다. 설정이 끝나면 plc.. 더보기
PC제어프로그램 4일차 (20.05.12) - Visual C++ 사용하기 Microsoft Visual C++ 실행을 한다. 프로젝트를 만들고 프로그래밍 작업을 하면 '프로젝트명-작업 파일명'에 작성한 프로그램이 만들어진다. 프로젝트/파일 (hellow/hellow) file-new 선택하면 Projects탭이 활성화되어 있음 file-new 선택하면 Files탭이 활성화되어 있음 이제 프로그램 명령어를 입력한다. 대소문자 구분하고 숫자 '0'과 영문자 'o'와 구분한다. /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0; } 프로그램 코드를 입력하고 Comfile을 해준다. 컴파일은 고급언어를 기계어로 바꾸는 과정이다. Ctrl+F7을 누르고 F7을 누르고 옆에 느낌표(!)를 누르면 실행.. 더보기
PC제어프로그램 4일차 (20.05.12) - 그레이(gray) 코드 int a,b; int c=10, d=20; ■ 연속된 수가 1개의 비트만 다름 ■ 비가중치 (non-weighted) 코드 ■ A/D 변환기(analog-to-digital converter)에 사용 가중치 : 2진수 값이 10진수로 나타냈을때 대소가 확실히 알 수 있는것 1010(2) -> 10 0100(2) -> 4 0001(2) -> 1 그레이 코드 - DC모터를 제어할 때 사용한다. 모터의 회전속도(RPM)은 1600~1800정도이다(초당 30바퀴정도 돈다. 눈으로 확인 어렵다) 감속기를 넣으면 초당 1~2바퀴정도로 감소시킨다. (각도 제어도 가능하다) 안에 작은기어에 큰기어를 걸어서 속도를 줄여준다. 큰기어에 모터 걸고 판을 만들어 구멍을 뚫는다. 빛을 쏘아 센서로 확인.. 더보기
CNC 선반가공프로그래밍 (3일차, 2020.05.11) - 교재60~ 수업3일차(5월 11일) 60페이지~ 선반작업의 기능 주축기능 절삭속도(m/min) = 공작물과 공구와의 상대속도 절삭속도 V = fiDN / 1000 가공을 하려면 회전을 해야 하는데 이것을 주축기능이라 한다. 주축기능(S) 스핀들:회전하는 축 G96 : 절삭속도 일정제어 (V 일정하게 유지) G97 : 주축회전수 일정제어 (RPM 일정하게 유지) RPM일정하고 공구가 밑으로 내려왔을때 (직경이 50->25) 절삭속도 V는 절삭속도가 중요한게 공구와 공작물의 재질에 따라 정해져 있다. 공구마모 연관있음 직경값이 바뀌는 작업을 할 때는 G97을 사용할 때는 가공면에 영향 받기 때문에 G96을 사용한다. G96 S120 절삭속도로 인식하는 것 G97 S120 RPM으로 인식 G96 S120일때 S120은 .. 더보기
로봇 장비 분해 - 본체 (2020.05.08) 더보기
로봇 장비 팔 분해 - 서보모터, 엔코더 (2020.05.08) 관절에 사용되는 서보모터가 있다. 모터가 있으면 조그만하게 달린것이 있는데 이것이 엔코더이다. 이것을 찾아서 정리해서 보고서를 작성한다. [ 진단평가 ] 산업용 Robot 이해도 진단 평가 진행. 1. Robot 구동을 위해 내부에 Servo Motor가 각 축 별로 내장 되어 있습니다. Servo Motor의 주요 기능은 무엇인지 기술하세요. 서보 모터는 자동화시스템에서 동력발생기(Actuator)로 사용되는 중요한 요소이다. 이러한 서보 모터는 경량, 소형, 설치의 용이성, 고효율성, 정확한 제어성, 유지보수의 용이성 등의 특징들을 갖추어야 한다. 특히 많은 모터가 설치된 무인 자동화공장 등에서는 유지, 보수가 용이한 서보 모터의 특징이 커다란 이점으로 작동한다. 서보모터는 정보처리회로(cpu)의 명.. 더보기
PC제어프로그램 3일차 (20.05.07) - 진수의 연산, 뺄셈 ■ 진수의 연산 7(10) +8(10) 15(10) 1(2) +1(2) 10(2) 1(2) +1(2) +1(2) 11(2) ◆ 10진수 6+5를 2진수로 변환시켜 계산해보자. 6(10) +5(10) ? -> 0110(2) +0101(2) 1011(2) 검산: 2진수 1011는 10진수로 11이다. ■ 뺄셈 ◆ 초기의 컴퓨터는 직접 뺄셈을 수행 ◆ 뺄셈을 보수에 의한 덧셈으로 한다. ■ 보수를 사용하는 목적은 뺄셈을 하기 위한 방법 -> 뺄셈을 덧셈으로 용이하게 하는 방법 ■ 1의 보수 / 2의 보수 1의 보수 - 각 자리의 0을 1로, 1을 0으로 변환 110100(2)의 1의 보수는 001011(2) 1011(2) 2의 보수는 1의 보수에 1을 더한다. 1011(2) + 1(2) = 1100(2) ex.. 더보기
PC제어프로그램 3일차 (20.05.07) - 소수점 진법변환(8 <-> 2 <->16) 5. 수의 변환 응용 (암산으로 변환) 2^3 2^2 2^1 2^0 32 16 8 4 2 1 A:10, B:11, C:12, D:13, E:14, F:15 ■ 10진수를 2진수로 변환 ◆ ■ 2진 정수를 8진, 16진으로 변환 ◆ 8진수로 변환은 3자리씩 ■ 8진수를 2진, 16진수로 변환 ◆ 8진수에서 16진수로의 직접 변환은 없다 ◆ 8진수에서 2진수, 2진수에서 16진수로 변환할 수 있다. A:10, B:11, C:12, D:13, E:14, F:15 37.24 (8) 011111.010100 (2) 1F.50 (16) 26.37(8) 010110.011111(2) 16.7C(16) 52.71(8) 101010.111001(2) 2A.E4(16) 64.53(8) 110100.101011(2) 34... 더보기
3D 프린터 (모델링소스 + 소프트웨어 다운로드 및 사용법) 3d 프린터 https://www.thingiverse.com/ Thingiverse - Digital Designs for Physical Objects Thingiverse is a universe of things. Download our files and build them with your lasercutter, 3D printer, or CNC. www.thingiverse.com 무료 소프트웨어 https://blog.naver.com/PostView.nhn?blogId=studycadcam&logNo=221545035664&redirect=Dlog&widgetTypeCall=true&directAccess=false 3D프린트 프로그램 큐라 (CURA 4.0) 설치 및 한글 언어변경 ​형상.. 더보기
로봇 장비 팔 분해 (2020.05.07) 로봇 장비 팔 분해하고 사진 찍고 보고서 만들어보기 6축 다관절 로봇의 팔을 분해 결합해 본다. 양쪽 면에 있는 커버들을 열어보고 로봇의 움직임에 따른 부품의 역할을 알 수 있다. 모터와 타이밍 벨트가 있는 것을 볼 수 있다. 관절마다 설치되어 있어 로봇이 동작할때 모터가 회전하고 타이밍 벨트로 동력(회전력)이 전달되어 관절이 특정 각도로 회전하거나 수평,수직 이동이 가능하다. 로봇 동작에 따른 모터와 타이밍 벨트의 움직임을 보았다. 확인 후 커버를 결합시킨다. https://www.youtube.com/watch?v=kQf7f7Hj8KE https://www.youtube.com/watch?v=cwH3oH0u_Mk 옆에 있는 부피가 작은 6축 다관절 로봇을 분해하고 동작을 살펴 본다. 확인 방법은 위와.. 더보기
PLC2 수업 (0506) 응용동작2 ===== 작업중 ===== * 응용동작①의 프로그램을 아래의 조건대로 변경하시오 ① 물품이 금속일 경우 배출실린더(CYL4)를 이용해 배출박스에 적재되고, 비금속일 경우 저장박스에 적재한다. ② 동작 완료 후 모든 램프는 소등한다. 매거진에 물품이 있으면 다시 운전을 시작하고 배출되는 물품이 3개가 되면 남은 동작을 끝낸 후 운전이 종료된다. ③ 동작 중에 PB3 스위치를 누르면 녹색램프가 1초 간격으로 점멸하고 모든 모터와 실린더가 정지된다. PB3 스위치를 한 번 더 누르면 시스템이 정상 작동된다. ④ 비상정지 스위치를 누르면 적색램프가 1초 간격으로 점멸하며 나머지 램프는 다 소등하고 모든 모터와 실린더가 정지된다. 비상정지 스위치를 해제하면 적색 램프가 소등되고 즉시 시스템이 초기화 된다. (모.. 더보기
PLC2 수업 (0506) 응용동작1 * 아래의 동작이 순서대로 수행되도록 하시오. ① 매거진에 물품이 있을 때 PB2 스위치를 누르면 녹색램프가 점등하고 1초 후에 공급실린더(CYL1)가 전진하여 물품을 공급하고 후진한다. ② 2초 후에 드릴모터가 구동되고 드릴가공실린더(CYL2)가 전,후진을 2회 반복한다. ③ 1초 후에 드릴모터를 정지시킨다. ④ 송출실린더(CYL3)가 전,후진하여 컨베이어로 물품을 송출시키고 1초 후에 컨베어어 벨트를 구동시킨다. ⑤ 금속, 비금속인지 판별하여 금속일 경우 황색램프를 0.5초 간격으로 점멸하고 비금속일 경우 황색램프를 점등한다. ⑥ 배출실린더를 작동시켜 배출박스에 물품을 적재한 후 컨베이어는 정지한다. ⑦ 작업이 완료되면 모든 램프는 소등된다. 더보기