IBASIC
iBASIC
- 전자부품
- 계측기 내장
- 보유한 HP E5100A 네트워크분석기 두 대에는 있다.
- 보유 HP 8714C 네트워크분석기에는 옵션을 선택하지 않아 없다.
- 사용자 설명서
- - 다운로드 받을 수 있음.
- HP BASIC
- Programming with HP BASIC - 436p
- 아래 메뉴얼이 적용되는 버전
- HP BASIC/WS 6.2
- HP BASIC/UX 300/400 6.3
- HP BASIC/UX 700 7.0
- HP BASIC/DOS 6.2
- HP BASIC Language Reference
- Vol 1: A-N - 604p
- Vol 2: O-Z - 706p
- HP BASIC Advanced Programming Techniques - 306p
- HP BASIC Programming Guide - 646p
- HP Instrument Basic - PC용이 아닌 계측기용
- 설명문으로 한글을 사용해도 된다.
- - 632p
- Programming Techniques: 2000년 12월 판
- Interfacing Techniques: 2000년 12월 판
- Language Reference: 2000년 12월 판
- 키보드 사용명령어
- CAT ":,0" 또는 ":,4"
- COPY "" TO ""
- EDIT
- GET "" !해당 파일을 읽어드린다. SAVE나 RE-SAVE로 파일을 만든다.
- INDENT !구조적,둥지적 프로그램으로 만든다.
- MSI, MASS STORAGE IS ":,0" 또는 ":,4" 등
- PURGE "" !해당 파일을 지운다.
- REN 또는 REN 10,10 !프로그램 라인 번호를 재 배열한다.
- RENAME "" TO ""
- RE-SAVE "" !텍스트 파일 덮어 저장한다.
- RUN
- SAVE ""
- EXECUTE 명령어: 내장 계측기를 사용할 때는 OUTPUT @ 명령에 비해 빠르다. (둘 중 아무거나 사용해도 된다는 뜻)
- HP BASIC for Windows = Rocky Mountain BASIC (=RMB, =RM-BASIC)
- 위키페디아 https://en.wikipedia.org/wiki/Rocky_Mountain_BASIC
- 상품명: E2066B, HP BASIC for Windows License to Use
- HP Instrument BASIC for Windows; E2200A
- 1992년도 판
- Installing And Using HP Instrument BASIC Windows - 209p
- 80286 이후 CPU
- MS Windows 3.0 이후 OS
- HP82335 또는 NI GPIB-PCII/IIA 또는 NI AT-GPIB 카드
- 93/11/00 HP-IB User's Guide for Windows - 118p
- HP Instrument BASIC for Windows; E2200A
- 알아두어야 할 내용
- 내용2
- interface select code: HP-IB이면 3~8번 사용한다. 바꾸지 않으면 7이다.
- national Instrument card를 사용하면 14 또는 15을 반드시 사용한다.
- RS-232
- 9: COM1
- 10: COM2
- 11: COM3
- 12: COM4
- 내용1
- 실수는 64비트-배정도실수이다.
- 그러므로, 계측기가 배보내는 데이터 포맷을 선택하는 REAL 32와 같은 명령어를 사용할 수 없다.
- 정수는 16비트이다. -32768~+32767 까지이다.
- 문자열은 $를 붙이고, 길이는 DIM Name$[8] 이렇게 선언해야 한다. 길이 지정안하면 18자리이다. ""을 사용한다.
- 실수는 64비트-배정도실수이다.
- 내용3
- EOL: end-of-line sequence, 보통 CR/LF 조합이다.
- CR: carriage-return character, CHR$(13)
- LF: line-feed character, CHR$(10)
- ASSIGN @Dmm TO 716;EOL Eol$
- EOL: end-of-line sequence, 보통 CR/LF 조합이다.
- ASSIGN @Dmm TO 709; FORMAT OFF, SWAP OFF
- default는 SWAP OFF이다. 계측기가 하는 것에 반대로, 바이트 전송을 역순으로 한다.
- SWAP ON을 실행하면 비트 순서가 역순이 된다. 사용할 일이 거의 없다.
- 내용2
- TIMEDATE
- 1900년 3월 1일 0시를 2.086 629 12 E11 (=2.08662912E11) 를 기준으로 초를 누적시킨다. (0.01초 분해능을 갖는다. 즉, 0.01초 정확도를 갖는다?)
- 24시간에 해당되는 86400초의 나머지가 자정을 지난 경과 초가 된다. = TIMEDATE MOD 86400
- 2018/05/21 TIMEDATE는 TIMEZONE을 고려하지 않는 듯.
- 현재 컴퓨터 날짜는 2018년 5월 21일인데, 함수를 호출하면 20일로 표시된다.
- Y2K 문제인가? 1999년 5월 21일도 20일로 표시된다. Y2K 문제는 아니다.
- 문제가 시작되는 날짜를 찾기 위해
1980-01-01 (Windows 98 최소 날짜)을 1일로. 문제없다.
- 결론
- 2023/06/08 24시간을 더해야 정상적인 날짜가 나온다. 그러나 시간은 그렇지 않다.
- DATE$(TIMEDATE + 24.*3600.) 반드시 실수로 계산한다.
- TIME$(TIMEDATE)
manual set TIME$ current time=12 Jun 2023 00:01:06 DATE$ TIME$ + 0 hour =11 Jun 2023 00:01:06 + 1 hour =11 Jun 2023 00:01:06 + 2 hour =11 Jun 2023 00:01:06 + 3 hour =11 Jun 2023 00:01:06 + 4 hour =11 Jun 2023 00:01:06 + 5 hour =11 Jun 2023 00:01:06 + 6 hour =11 Jun 2023 00:01:06 + 7 hour =11 Jun 2023 00:01:06 + 8 hour =11 Jun 2023 00:01:06 + 9 hour =11 Jun 2023 00:01:06 + 10 hour =11 Jun 2023 00:01:06 + 11 hour =11 Jun 2023 00:01:06 + 12 hour =11 Jun 2023 00:01:06 + 13 hour =11 Jun 2023 00:01:06 + 14 hour =11 Jun 2023 00:01:06 + 15 hour =11 Jun 2023 00:01:06 + 16 hour =11 Jun 2023 00:01:06 + 17 hour =11 Jun 2023 00:01:06 + 18 hour =11 Jun 2023 00:01:06 + 19 hour =11 Jun 2023 00:01:06 + 20 hour =11 Jun 2023 00:01:06 + 21 hour =11 Jun 2023 00:01:06 + 22 hour =11 Jun 2023 00:01:06 + 23 hour =11 Jun 2023 00:01:06 + 24 hour =12 Jun 2023 00:01:06
- 현재 컴퓨터 날짜는 2018년 5월 21일인데, 함수를 호출하면 20일로 표시된다.
- TIMEDATE를 파일로 저장할 때는 반드시 USING "12D.DD"를 사용해야 1/100초 단위로 저장된다.
- 그래야 이렇게 저장된다. 212553211609.84
- PRINT TIMEDATE 이렇게 실행하면 212553211609 처럼 정수만 저장된다.
PRINT TIMEDATE 2.12553244867E+11 PRINT USING "12D.DD" TIMEDATE 212553244866.56 t0=TIMEDATE WAIT 1 t=TIMEDATE-t0 PRINT t .989990234375
- 참고: Excel 에서는
- 함수
- time: 24시간을 1로 취급한다. 0에서부터 0.99999999까지를 0:00:00에서 23:59:59까지 표현한다.
- date: 1900년 1월 1일을 1로 한다.
- TIMEDATE를 엑셀 date time으로 변환하기 (여기서는 9시간을 더하지 않는다. 62일 더해야 한다.)
- T0 = TIMEDATE
- T1 = T0 - 2.08662912E11 1900년 3월 1일 0시 기준으로 경과 초
- T2 = T1 + (62*86400), 62일을 더해 1900년 1월 1일 0시 경과초로 변경한다.
- date: trunc(T2/86400) 경과 날짜
- time: mod(T2, 86400)/86400 경과 시간이 초로 나온다.
- 함수
- 명령어 중에서
- IF THEN
- ELSE 가 있지, ELSE IF는 없다. SELECT... CASE 문을 사용한다.
- ON
- ERROR - 오류가 발생되면
- INTR - 인터페이스 카드에서 인터럽트가 발생되면
- TIMEOUT - 응답에서 실패하면
- CYCLE - 정해진 시간이 경과하면
- 서브프로그램
- .prg 포맷으로 저장한다.
- LOADSUB로 읽어드린다. LOADSUB ALL FROM "C:\ibasic\subfile.prg"
- IF THEN
- 알아두어야 할 내용
- 사용중에
- HP Instrument BASIC for Windows
- HP 8753E 네트워크분석기로 SAW필터 관련 측정 - 8,045줄
- HP 8753E 네트워크분석기로 SAW필터 관련 측정 - 8,045줄
- 2017/03/21
- 삼성 매직스테이션 M520T에서
- HP Instrument BASIC for Windows