본문 바로가기

Piping & Instrument Diagram(P&ID) 이란? Process Flow Diagram(PFD)를 기본으로 하여, 각 공정을 구성하는 단위조작기기의 구성과 그 흐름을 상세하게 표시한 그림이다. P&ID는 프로젝트계획 및 기본설계를 다음단계(상세설계, 구매/조달, 건설, 시운전)의 엔지니어링에 옮기기 위하여 그 기본내용을 도식화해서 공장설계에 관여하는 여러 전문 엔지니어에게 필요한 인포메이션(Information)을 정리하고 통합한 매체이며 중요한 Process 설계성과품 중의 하나이다. P&ID는 Process Flow Diagram(PFD)를 기본으로 하여 Process Engineer, Project Engineer외에 Piping Engineer, Electrical Engineer, Instrument Engineer 그리고 기기설계Enginee.. 더보기
Piping & Instrument Diagram(P&ID) 이란? Process Flow Diagram(PFD)를 기본으로 하여, 각 공정을 구성하는 단위조작기기의 구성과 그 흐름을 상세하게 표시한 그림이다. P&ID는 프로젝트계획 및 기본설계를 다음단계(상세설계, 구매/조달, 건설, 시운전)의 엔지니어링에 옮기기 위하여 그 기본내용을 도식화해서 공장설계에 관여하는 여러 전문 엔지니어에게 필요한 인포메이션(Information)을 정리하고 통합한 매체이며 중요한 Process 설계성과품 중의 하나이다. P&ID는 Process Flow Diagram(PFD)를 기본으로 하여 Process Engineer, Project Engineer외에 Piping Engineer, Electrical Engineer, Instrument Engineer 그리고 기기설계Enginee.. 더보기
비베로 제어판, 바탕화면 관리 1. 비베로 제어판 관리 'VB의 Shell함수를 하용하여 윈도우의 DLL을 직접실행하여 윈도우의 제어판을 호출할수 '할수있다 '먼저 폼하나를 만들고 거기에 listbox를 하나 추가한다음 '아래의 소스를 작성하여 실행하여 본다 Option Explicit Private Sub Form_Load() List1.AddItem " 시스탬등록정보" List1.AddItem " 새하드웨어 추가 마법사" List1.AddItem " 프린터추가 마법사" List1.AddItem " 프로그램 추가/삭제 마법사" List1.AddItem " 윈도우 설치 마법사" List1.AddItem " 시동디스크작성 마법사 " List1.AddItem " 날짜/시간" List1.AddItem " 표준시간" List1.AddItem.. 더보기
API함수를 이용하여 폼 move Windows API 함수를 이용하여, 제목표시줄에서 마우스왼쪽버튼을 누르고 있는것처럼 효과를 주어 Form Move를 할 수 있습니다. 소스는 아래와 같습니다. Private Const WM_NCLBUTTONDOWN = &HA1 Private Const HTCAPTION = 2 Private Declare Function ReleaseCapture Lib "user32" () As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ lParam As Any) As Long Private Sub Form.. 더보기
절삭하는 함수 Fix (버림하는 함수) / 절상(올림) 하는 방법 Dim a Dim b a = 403.6 b = 4536 a = CLng(a) b = Fix(b / 10) * 10 위에서 결과값으로 a=404, b=4530이 됩니다. 참고로 CInt 는 INT 데이타 값의 소수점을 반올림 한 결과를 리턴합니다. CLng 는 LONG 데이타 값의 소수점을 반올림 한 결과를 리턴합니다. Fix는 소수점을 절사한 결과 값을 리턴하고,, Int함수는 해당 값보다 작은 정수값을 리턴합니다.(??) ==> Int와 Fix는 모두 number의 분수 부분을 없애고 정수 부분만을 반환합니다. Int와 Fix의 차이점은, number가 음수이면, Int는 number보다 작거나 같은 최초의 음의 정수를 반환하는 반면에, Fix는 number보다 크거나 같은 최초의 음의 정수를 반환합니.. 더보기
콤보박스 관련 함수들 1) 클릭이벤트 없이 인덱스 바꾸기 Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Public Sub SetCboIndex(TgtComboBox As Object, ByVal ListIndex As Long) '설명: 콤보박스의 현재 인덱스를 클릭이벤트 없이 바꾸는 함수 Const CB_SETCURSEL = &H14E& '인덱스값을 바꿔준다.(Click이벤트가 발생하지 않는다.) SendMessage TgtComboBox.hWnd, CB_SETCURSEL, L.. 더보기
화면 해상도 구하기, 화면 캡쳐 1. 화면해상도 Screen 전역개체의 Width와 Height(Twip 단위) 픽셀로 바꾸려면 Screen 개체에 존재하는 TwipsPerPixelX, TwipsPerPixelY 속성을 이용. 한 픽셀당 트윕의 수. 즉, 픽셀값으로 변환되는 화면의 크기는 ... 화면의 넓이 : Screen.Width / Screen.TwipsPerPixelX 화면의 높이 : Screen.Heigth / Screen.TwipsPerPixelY 2. 화면 캡쳐 일단 픽쳐박스를 하나 만들어 놓고 아래와 같이 코딩 Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, _ ByVal y As Long, ByVal nWidth As.. 더보기
무료환율표 배너 우리은행에서는 고객 사이트에서 환율정보를 쉽게 활용할 수 있도록 다양한 배너 형태의 환율표를 무료로 제공해 드리고 있습니다. 우리은행의 다양한 환율정보와 함께 더욱 효과적인 외환관리를 해 나가시기 바랍니다. 1-1. 환율표 제공 ※ 방법 : 아래의 소스를 복사한 후 붙여넣기하여 사용하시면 됩니다. 1-2. 환율표 제공 ※ 방법 : 아래의 소스를 복사한 후 붙여넣기하여 사용하시면 됩니다. 1-3. 환율표 제공 ※ 방법 : 아래의 소스를 복사한 후 붙여넣기하여 사용하시면 됩니다. 2-1. 환율표 제공 ※ 방법 : 아래의 소스를 복사한 후 붙여넣기하여 사용하시면 됩니다. 2-2. 환율표 제공 ※ 방법 : 아래의 소스를 복사한 후 붙여넣기하여 사용하시면 됩니다. 2-3. 환율표 제공 ※ 방법 : 아래의 소스를 .. 더보기
오늘의명언 - maxim() 함수 ////365일 매일 날짜에 따라 다른 명언을 출력해줍니다.기존명언대신맘에드는다른명언을변수에저장하여기호에맞게사용할수있습니다.다음함수를인클루드시키거나해당페이지에그대로복사후원하는위치에함수를 - maxim(); - 호출합면됩니다.참고로 첨부파일엔 함수만정의되어있기때문에반드시함수를 호출해야명언이뜨겠죠~함수마지막부분에출력되는명언의문자열中첫자에html태그를사용하여효과를주게끔설정해두었습니다. 첫자를크게하거나색을바꾸거나두껍게하거나이탤릭체등으로색과형을기호에맞게출력할게끔해두었습니다.//////////////////////////"오늘의 명언을 출력하는 함수"function maxim(){$mx[1][1]=" 가끔 일어나는 대수롭지 않은 반역은 정부의 건강을 위해서 절대로 필요한 약이다. (토머스 제퍼슨)";$mx[1][2.. 더보기
오늘의명언 - maxim() 함수 ////365일 매일 날짜에 따라 다른 명언을 출력해줍니다.기존명언대신맘에드는다른명언을변수에저장하여기호에맞게사용할수있습니다.다음함수를인클루드시키거나해당페이지에그대로복사후원하는위치에함수를 - maxim(); - 호출합면됩니다.참고로 첨부파일엔 함수만정의되어있기때문에반드시함수를 호출해야명언이뜨겠죠~함수마지막부분에출력되는명언의문자열中첫자에html태그를사용하여효과를주게끔설정해두었습니다. 첫자를크게하거나색을바꾸거나두껍게하거나이탤릭체등으로색과형을기호에맞게출력할게끔해두었습니다.//////////////////////////"오늘의 명언을 출력하는 함수"function maxim(){$mx[1][1]=" 가끔 일어나는 대수롭지 않은 반역은 정부의 건강을 위해서 절대로 필요한 약이다. (토머스 제퍼슨)";$mx[1][2.. 더보기
A Thread to Visual Basic Reprinted with Permission from Desaware Contents: Introduction. A quick Review of Multithreading. A multithreading Simulator. Avoiding Multithreading Problems. Visual Basic Service pack #2. Why Multithread? The Threading Contract. The CreateThread API. The Create Thread API Revisited. Conclusion. VB6 update. SpyWorks 6.2 update. For Further Reference. You can download the sample code from ftp.de.. 더보기
MMAP mmap란? #mmap(2)는 메모리의 내용을 파일이나 디바이스에 대응(mapping)하기 위해서 사용하는 시스템 호출이다. 여기에서는 mmap시스템 호출의 활용방안에 대해서 알아보도록 한다. 3.1 메모리관리와 mmap #각 각의 프로세스는 프로세스마다 다른 프로세스와 중복되지 않는 주소공간을 가지게 된다. 주소 공간은 최초 논리적인 3개의 세그먼트로 분할된다. 덱스트, 데이터와 스팩이 그것이다. 텍스트 세그먼트는 읽기전용으로 프로그램의 명령을 포함하고 있다. 데이터와 스택 세크먼트는 읽기,쓰기가 모두 가능한 영역이다. 차이점이라면 데이터 세그먼트에는 초기화 된 데이터와 그렇지 않은 데이터가 함께 있는데 반해, 스택 세그먼트는 실행시간에 초기화된 값들을 보관한다는 것이다. 대부분의 시스템에서는 프로세스.. 더보기
Sharing Files and Memory File mapping can be used to share a file or memory between two or more processes. To share a file or memory, all of the processes must use the name or the handle of the same file mapping object. To share a file, the first process creates or opens a file by using the CreateFile function. Next, it creates a file mapping object by using the CreateFileMapping function, specifying the file handle and.. 더보기
드라이브, 폴더, 파일처리 FSO(File System Object) visual basic6.0부터는 Open문을 사용해 파일만을 처리했던 구 버전과는 달리 파일은 물론, 드라이브, 폴더까지 다룰 수 있는 FSO(File System Object)모델을 소개하고 있다. FSO모델을 사용하면 폴더를 작성, 변경, 이동, 삭제뿐만 아니라 폴더에 대해 여러가지 정보를 얻을 수 있다. 또한 파일을 쉽게 처리할 수 있다. 파일을 처리하는 주요목표는 공간과 컴퓨터자원을 효율적으로 사용하고 접근하기 쉬운 데이터를 저장하는 것이다. 이러한 파일처리목표를 달성할 수 있는 것이 FSO모델이다. 파일시스템개체(FSO)구성 FSO모델의 개체구성원을 사용하려면 먼저 [프로젝트-참조]메뉴를 선택해 참조대화상자에서 "Microsoft Scripting Runtime"을 선택해야 한다. Script.. 더보기
파일처리 - 파일작업 FSO모델을 사용하여 순차텍스트파일을 만드는 방법에는 다음 3가지가 있다. createTextFile 파일이름을 작성하고 파일을 읽거나 쓰는데 사용되는 createTextFile메서드를 사용하는 것이다. object.createTextFile(파일명 [,파일작성 [,unicode작성]]) 구성요소 설명 object fileSystemObject나 folder개체의 이름 파일명 작성한 파일을 나타내는 문자식 파일 작성 false(기본값)는 새로운 파일작성, true는 존재하는 파일에 겹쳐쓴다. unicode false(기본값)는 ascii파일로 작성, true는 unicode로 작성한다. Private Sub Form_Load() Dim fs As New FileSystemObject 'Dim문 대신 se.. 더보기
파일처리 - 파일에 데이터추가 텍스트 파일이 작성된 뒤 파일에 데이터를 추가하려면 다음 단계를 밟으면 된다. 파일열기 file.openAsTextStream 또는 fileSystemObject.openTextFile 데이터추가 write 또는 writeLine과 writeBlankLines 모두 textStream개체로 writeLine메서드는 지정된 문자열 끝에 줄바꿈 문자를 추가하고 커서를 다음라인 첫칸으로 이동한다. writeBlankLines메서드는 새 줄을 텍스트파일에 추가하는 것이다. 파일닫기 textStream.close 아래 예제는 3개의 쓰기 메서드 모두를 사용하여 파일을 열고 데이터를 추가하고 파일을 닫도록 한다. Private Sub Command1_Click() Dim fso, txtfile Set fso = C.. 더보기
이진파일처리 이진파일 레코드 정의 랜덤처리를 위해 코드모듈에 사용자정의 데이터형을 지정하여 일정한 레코드 길이를 다음과 같이 지정했다. type person '사용자정의 데이터형 정의 number as integer name as string * 10 mark as integer end type person데이터형은 총 14바이트로 언제나 같은 길이를 가지게 된다. 즉, person.name에 영문 2문자만 할당해도 10바이트를 차지하기 때문에 디스크의 낭비를 초래한다. 그러므로 이진처리에서 사용자정의 데이터형을 다음과 같이 지정하도록 한다. type person number as integer name as string '알 수 없는 길이의 name필드정의 mark as integer end type 이진처리에서 .. 더보기
랜덤파일처리 랜덤파일 레코드의 정의 랜덤처리는 고정된 길이의 레코드(각 레코드는 필드로 구성됨)로 구성되어 있는 파일을 처리할 때 유용하다. 랜덤처리는 필요로 하는 특정데이터의 위치를 찾아서 데이터를 읽을 수 있으므로 순차파일 처리보다는 데이터베이스처럼 작업을 할 수 있다. 또한 파일의 특정위치만 읽기때문에 순차처리보다 빠르다. 랜덤데이터의 입력 일단 랜덤파일을 만들기 전에 고정된 길이의 레코드를 구성하기 위해서는 사용자정의 데이터형인 type .. end type문을 써야 한다. 이 사용자정의 데이터형은 반드시 코드모듈에 있어야 한다. 프로젝트 탐색기에서 모듈을 추가하여 해당코드모듈창에 코드를 입력한다. 사용자정의 데이터형을 만들고 사용자정의 데이터형을 전역변수로 선언한다. Type person '사용자정의 데이터.. 더보기
open문을 이용한 파일처리 - 순차처리 파일 역시 디스크상에 관련된 일련의 바이트로 구성된 것에 지나지 않기 때문에, 어플리케이션에서 파일에 접근할 때는 이들 바이트가 어떻게 구성되었는가를 (문자, 데이터 레코드, 정수, 문자열 등등)미리 알고 있어야 한다. 파일이 어떤 데이터를 갖고 있느냐에 따라서 적당한 파일액세스형식을 사용해야 한다. 비주얼베이직에는 다음과 같은 3가지형식의 파일액세스가 가능하다. 순차처리(Sequential Access) 이 방식은 평범한 텍스트파일을 처리하는데 사용된다. 파일의 각 문자는 개행문자(newline character)와 함께 텍스트의 문자나 텍스트 형식과 순서를 나타내는 것으로 가정한다. 또한 데이터는 ansi문자로 지정된다. 랜덤처리(Random Access) 이 방식은 고정길이의 레코드로 구성된 텍스트.. 더보기
탭 대화상자 ssTab컨트롤은 한 개의 탭이 다른 컨테이너로 작용할 뿐만 아니라, 화면공간을 최대한 절약할 수 있기 때문에 최근에 가장 유용하게 쓰이는 컨트롤 중의 하나이다. ssTab컨트롤의 추가 도구상자의 팝업메뉴를 호출, [구성요소]를 선택하거나 [프로젝트]메뉴의 [구성요소]를 선택한다. 구성요소 대화상자의 [컨트롤]탭 리스트에서 Microsoft Tabbed Dialog Control6.0항목을 체크하면 도구상자에 컨트롤이 추가된다. ssTab의 속성 [일반]탭에서는 다음과 같은 것들을 결정할 수 있다. Current Tab : 탭의 인덱스를 의미한다. 실제 탭을 구분할 때 쓰인다. 디폴트는 0이다. Tab Caption : 현재 탭(index)에 나타난 탭의 제목을 설정한다. Tab Count : 탭의 갯수.. 더보기
보고서 작성 - DataView Visual Basic에서 보고서를 만드는 방법은 data report로 만드는 방법과 crystal report로 만드는 방법이 있다. 보고서를 만드는 작업을 하기 이전에 data view와 data environment에 대한 이해가 필요하기 때문에 우선적으로 data view에 대해서 설명하도록 한다. data view소개 data view창을 이용하여 데이터베이스 구조를 엑세스하고 조작할 수 있다. data view는 다음과 같은 작업을 가능한게 한다. 테이블과 뷰를 작성/수정 데이터베이스 다이어그램을 작성/수정 저장 프로시저와 트리거를 작성/수정 프로젝트에서는 data environment를 사용하여 응용프로그램의 데이터를 엑세스한다. data view창은 프로젝트에 추가된 모든 data env.. 더보기
Crystal Report 이 장에서는 Crystal Report 4.6이라는 좀 더 섬세한 도구를 사용해 보고서를 만들어 본다. 보고서 디자인 주 화면의 메뉴에서 [파일-새 파일]을 선택하면, 다음과 같은 새 보고서 작성선택 대화상자를 볼 수 있다. 보고서디자인은 화면에 보이는 것처럼 유형별로 다양한 보고서를 작성할 수 있도록 지원하고 있다. 예를 들어. 표준형을 선택하게되면 데이터가 그룹으로 나뉘고. 각 그룹안의 값들이 합산되어 있는 정렬과 합계보고서를 작성할 수 있다. 이런 종류의 보고서의 예로 고객별 주문 보고서, 영업 사원별 판매 보고서, 판매 업체별 구입보고서 등을 들 수 있다. 또한 크로스탭형을 선택하게 되면 요약된 데이터가 스프레드시트와 유사한 행렬구조로 표현되어 있는 보고서를 작성할 수 있다. 즉, 이 보고서는 읽.. 더보기
Crystal Report - 수식작업/그래프/차트삽입 위의 결과만으로는 완전한 보고서라고 할 수 없다. true와 false중 어느 것이 남자인지도 모르고 또한 상세정보로서 전체적인 평균과 개인별 평균이 추가되어 있지 않다. 이러한 기능을 추가시키려면, 수식을 이용해야 한다. 먼저, true를 '남자'로 false를 '여자'로 전환시키기 위해 수식을 작성하여 본다. 수식을 만들기위해 [보고서 디자인]의 메인메뉴인 [삽입-수식필드]를 선택하고 다음 과정을 따라한다. 수식삽입 대화상자가 나오면, 수식 이름란에 MorF를 입력하고 [확인]버튼을 누른다. 1단계에서 지정한 MorF수식에 대한 공식을 입력할 수 있도록 수식편집 대화상자가 나타난다. 상단의 리스트상자에는 보고서에 사용할 수 있는 필드, 함수, 연산자 리스트를 제공하고 하단에는 수식테스트 상자를 제공하.. 더보기
Crystal Report 컨트롤 프로그래밍 앞 장에서 생성한 보고서 디자인 파일인 eng_score.rpt를 사용하여, 비주얼베이직 어플리케이션에서 화면 또는 프린터로 출력하는 방법을 알아보기로 한다. 저장된 보고서 디자인 파일(.rpt)을 사용하기 위해서는 crystal report컨트롤이 필요하다. 따라서 이 컨트롤을 도구모음에 추가하기위해 [프로젝트-구성요소]메뉴를 선택해 구성요소 대화상자를 연다. 그리고, 대화상자의 [컨트롤]탭에 있는 crystal report control 4.6을 선택하면 된다. 도구상자에 추가된 crystal report컨트롤과 commandButton을 폼 위에 추가시킨다. 폼에 있는 crystal report컨트롤을 눌러 선택한다. 그리고, 마우스 오른쪽 단추를 눌러 나타내는 단축메뉴에서 속성명령을 선택하면 cr.. 더보기
Registry Access 레지스트리 건드릴때.. API함수 많이 쓰는데... Getsetting, Savesetting를 이용하면 쉽게 접근할수 있습니다. 구조는 아래와 같구요... Gettsetting [APP.NAME],[SECTION],[KEY] 이렇게 하면 키값 불러오구... Savesettin [APP.NAME],[SECTION],[KEY],[저장할 값] 이러면 됩니다. 더보기
Registry Access 레지스트리 건드릴때.. API함수 많이 쓰는데... Getsetting, Savesetting를 이용하면 쉽게 접근할수 있습니다. 구조는 아래와 같구요... Gettsetting [APP.NAME],[SECTION],[KEY] 이렇게 하면 키값 불러오구... Savesettin [APP.NAME],[SECTION],[KEY],[저장할 값] 이러면 됩니다. 더보기
[Torrent] Open Tracker http://tracker.prq.to/announce.php http://tracker.prq.to/announce http://tracker.thepiratebay.org/announce http://tracker.prq.to:80/announce http://tv.tracker.prq.to/announce http://tracker.bitebbs.com:6969/announce http://tracker.ydy.com:87/announce http://btfans.3322.org:6969/announce http://btfans.3322.org:8080/announce http://btfans.3322.org:8000/announce http://tracker.torrent.to:2710/annou.. 더보기
유용한 프로그램 300선 Office OpenOffice - office suite (한번 써본 경험만 있습니다. 회사/집 모두에서 M$ 것을 사용중입니다.) PC Suite 602 - office suite AbiWord - text editor Atlantis Nova - text editor Microsoft PowerPoint Viewer - power point files viewer Adobe Reader - pdf reader (안써봤다고 하면 거짓말이겠죠?) Foxit PDF Reader - pdf reader (이것도 한참을 써 봤지만, 현재는 PDF+를 사용중입니다.) PDFCreator - create pdf documents (요거 유용하게 사용중입니다. 워터마크도 없고 편하지요.. ^^) Doc Conve.. 더보기
AUTOSAR OSEK/VDX OSEK은 자동차 및 부품업계를 중심으로 자동차에 사용되는 '전자제어장치의 분산 제어에 적합한 개방형 표준 규정'을 만들려는 협력 프로젝트에서 출발하였고 참여기업으로는 독일의 BMW, 보쉬, 다임러크라이슬러, 오펠, 지멘스, 폭스바겐 등이 있다. VDX는 OSEK과 유사한 목적의 프로젝트로 프랑스의 르노, 푸조 시트로엥 등이 참여하였다. 1997년 OSEK/VDX가 OSEK표준(공식 자동차용 실시간 운영체제)을 발표하였고 현재 70%의 시장점유율을 보이고 있다. 지금 OSEK은 자동차용 OS역할을 하고 있다. AUTOSAR (AUTOmotive Open System Architecture) 차량용 미들웨어의 대표적 사례로 자동차용 전자제어장치에 필요한 전 소프트웨어 분야의 개방형 표준을 .. 더보기
Programmable Power 가격 Xantrex 670-850WXTR20-42 : 3,000,000  30V 50V 60V 75V 100V 160V 200V 250V 300V 350V 500V 0.5A 2,124 1A 1,200 1,344 1,680 1,980 2,364 2,676 3,348 2A 1,680 1,812 2,136 2,520 2,976 3,420 4,176 3A 1,200 1,320 1,950 1,990 1,920 2,189 2,520 3,150 3,876 4,644 6,264 5A 1,320 1,400 1,680 2,100 2,280 3,360 3,840 4,620 5,040 6,540 9,576 10A 1,440 2,280 2,520 3,150 3,840 5,184 6,480 7,750 7,920 15A 1,980 3.. 더보기