달력

12012  이전 다음

  • 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
  • 31

키보드의 F5 키를 눌러,
[이동] 메뉴 하단부의 [옵션]버튼을 눌러 나타 나는 대화창에서
[개체]옵션에 체크 한 후 [확인] 누름.

시트내의 모든 개체(그림, 사진, 도형, 버튼 등)가 선택됨.
 
Delete키를 눌러 개체 삭제.

저장.

끝.


문서 불러서 시트 복사나 셀 복사 한 후 다른이름 저장시
의도하지 않은 데이터(눈에 보이지 않는) 들이 생성되는거 같다.
시트 하나에 A4 용지 문서 있는데 용량이 거진 3메가.
다이어트 하니 23k...

네박사 지식인이 참 고맙다... 
Posted by theF
|

LS GM7 <->MT8070iH 사용중.

4.33 과 4.51 사이의 버전 사용중.

Mreg  외의 IX 와 QX 모니터링 안됨.

reg 번호 잘못 눌러 그런줄 알고 해매다 easyview 홈피 문의.

최신버전 사용 하면 될꺼임 이란 답 받음. 

기존 버전 지우고 4.51 버전  설치.

안됨.

잘 쓰고 있는 회사 동료 버전 4.33 임.

4.33 설치

안됨.

회사동료 PC에서 직접 PLC 및 HMI 소스 가공후 PC 연결해서 테스트 성공.

고로~ 내가 쓰는 PC 문제인 거임.

컴파일된 파일을 내 PC 상에서 HMI에 전송

테스트 성공.

고로~ 프로그램이 병맛인 거임.

안되겠다 싶어 회사동료 PC에서 드라이버 부분만 복사해서 내 PC에 덮어쓰기함.

테스트 성공...  ㅡ,.ㅡ


뭐지 이건?  무...무슨 경우지?

 
Posted by theF
|

DFC-4000 Connector

기술자료 2012. 1. 17. 15:48

DFC-4000 <-> Mykrolis FC-280S 사용중  

KOFLOC 3665 모델 연결 의뢰..

메뉴얼 뒤적이다 성공!!

영어가 안되서 아주 힘들구나...  ㅜ_ㅜ


가스(에어)량 제어하는 기기라는데..


혹시나 나같이 헤매는 사람이 있을지 몰라 자료 올림..





 
Posted by theF
|

구글링으로 얻은 PDF

원 저작자님 감사 합니다.  ^^;



 

응용한 프로그램 소스 중 일부

 - Cport 264 사용..
 - 온도 모니터링 하는데, 가끔 뻑난단다.. 콤포 문젠지 뭔지 감이 안잡힘....젠장.





procedure TfrmMain.ComTmpRxChar(Sender: TObject; Count: Integer);
var
  i:integer;
  RX_Char:char;//수신된 값
  RX_Array:array[1..200]of string;//수신된 데이타
  rx_s : string;
begin

  //ComPort1.Readstr(rx_s,count);
  //Edit_RX.Text := Edit_RX.Text + rx_s;

  //010304021600F81BCD
  for i:=1 to count do begin
    ComTmp.Read(RX_Char,1);
    RX_Array[i]:=inttohex(byte(RX_Char),2);
    RxBuf2:=RxBuf2+RX_Array[i];
  end;

  if (18 = length(RxBuf2)) and (RxBuf2[3] = '0') and (RxBuf2[4] = '4') then begin
    FlterTmp(RxBuf2);
    Edit_Rx.Text := RxBuf2;
    ComTmp.ClearBuffer(True,True);
    RxBuf2 := '';
    exit;
  end;

  if (10 = length(RxBuf2)) and ((RxBuf2[3] = '8') and (RxBuf2[4] = '1')) or ((RxBuf2[3] = '8') and (RxBuf2[4] = '4')) then begin
    FlterTmp(RxBuf2);
    Edit_Rx.Text := RxBuf2;
    ComTmp.ClearBuffer(True,True);
    RxBuf2 := '';
    exit;
  end;



end;

procedure TfrmMain.FlterTmp(tmpstr:string);
var
  i, j, iTag,k, tmparryMax, tmparryMin : integer;
  oStr, iCut1, iCut2, iCut3, iCut4 : string;
  Dcut1, Dcut2, Dcut3, Dcut4 : real;
begin

  tmrERRch.Enabled := False;

  oStr := tmpstr;

  if tmrMoni.Enabled = False then begin
    iTag := StrToInt(edtchNo.text);
  end else begin
    iTag := BtnTmpRead.Tag;
  end;

  if Length(oStr) < 18 then begin
    workD[iTag].iValue := 0;
    workD[iTag].iValue2 := 0;

    TEdit(FindComponent('EdtTemp_'+FormatFloat('00',iTag))).Text := 'ERR';//FormatFloat('0.0',Dcut1);
    TEdit(FindComponent('EdtHy_'+FormatFloat('00',iTag))).Text := 'ERR';//FormatFloat('0.0',Dcut2);

    LogADD('CH'+FormatFloat('00',iTag)+' ERROR '+ oStr);

    if tmrMoni.Enabled = False then begin
      exit;
    end;

  end else begin
    iCut1 := Copy(oStr,1,2); //ID

    iCut2 := Copy(oStr,7,4); //온도
    iCut3 := Copy(oStr,11,4); //습도


    Dcut2 := (StrToIntDef('$'+iCut2,0))/100;
    Dcut3 := (StrToIntDef('$'+iCut3,0))/100;

    workD[iTag].iValue := Dcut2;
    workD[iTag].iValue2 := Dcut3;

    TEdit(FindComponent('EdtTemp_'+FormatFloat('00',iTag))).Text := FormatFloat('0.0',Dcut2);
    TEdit(FindComponent('EdtHy_'+FormatFloat('00',iTag))).Text := FormatFloat('0.0',Dcut3);

    //LogADD('flterRTN');

  end;

  for i:=8 downto 1 do begin
    if workD[i].ichkuse then begin
      tmparryMax := i;
      break;
    end;
  end;

  for i:=1 to 8 do begin
    if workD[i].ichkuse then begin
      tmparryMin := i;
      break;
    end;
  end;

  BtnTmpRead.Tag := BtnTmpRead.Tag +1;

  if BtnTmpRead.Tag > tmparryMax then begin
    BtnTmpRead.Tag := tmparryMin;
    Measuring;
  end;




end;

procedure TfrmMain.BtnTmpReadClick(Sender: TObject);
var
  i,j, k:integer;
  CRC_Data_Len:integer;//CRC 계산에 사용될 데이타 길이
  CRC_Data_Array:array[1..30]of byte;//CRC 계산에 사용될 데이타
  Result_CRC:Word;//계산된 CRC값
  TX_Data_Size:integer;//송신할 데이타 길이
  TX_Data_Array:array[1..32]of byte;//송신할 데이타
  tmpstr : string;
  tmpchV, tmparryMax : integer;
begin

  tmrERRch.Enabled := True;

  for i:=8 downto 1 do begin
    if workD[i].ichkuse then begin
      tmparryMax := i;
      break;
    end;
  end;

  if tmrMoni.Enabled then begin
    for k := BtnTmpRead.Tag to tmparryMax do begin
      if workD[k].ichkuse then begin
        BtnTmpRead.Tag := k;
        Break;
      end;
    end;

    tmpchV := BtnTmpRead.Tag;

    edtchNo.Text := FormatFloat('00',tmpchV);
  end;

  edtchNo.Text := FormatFloat('00',strtoint(edtchNo.Text));

  Edit_Tx.Text := edtchNo.Text + '04' + '0000' + '0002';


  CRC_Data_Len:=round(length(Edit_TX.Text)/2);
  For i:=1 to CRC_Data_Len do begin
    j:=i*2-1;
    CRC_Data_Array[i]:=byte(strtoint('$'+Edit_TX.Text[j]+Edit_TX.Text[j+1]));
  end;

  Result_CRC:=Make_CRCValue(CRC_Data_Array,CRC_Data_Len);
  EdtCRC16.Text:= inttohex(Lo(Result_CRC),2)+inttohex(Hi(Result_CRC),2);


  if (ConfD.iSimulate = True) or (ComTmp.Connected = False) then exit;

  Edit_RX.Text:='';

  tmpstr := Edit_TX.Text + EdtCRC16.Text;

  TX_Data_Size:=round(length(tmpstr)/2);

  For i:=1 to TX_Data_Size do begin
    j:=i*2-1;
    TX_Data_Array[i]:=byte(strtoint('$'+tmpstr[j]+tmpstr[j+1]));
  end;

  ComTmp.Write(TX_Data_Array,TX_Data_Size);


end;

//Table에 의한 CRC값 생성 함수
function TfrmMain.Make_CRCvalue(Data: array of byte; nByte: word): Word;
var
  CRCValue:Word;
  i:integer;
begin
  CRCvalue:=$FFFF;
  For i := 1 to nByte do
    CRCvalue := Hi(CRCvalue) XOR CRC_Table[ Data[i-1] XOR Lo(CRCvalue) ];
  Result:=CRCvalue;
end;

procedure TfrmMain.btntmrstopClick(Sender: TObject);
begin
  tmrMoni.Enabled := not tmrMoni.Enabled;

  if tmrMoni.Enabled then begin
    btntmrstop.Caption := 'Auto Run.';
  end else begin
    btntmrstop.Caption := 'Manual Run.';
  end;
end;
Posted by theF
|
바꾸자, 소리 심하다.



http://blog.giristory.net/291
Posted by theF
|