2017년 7월 28일 금요일

Access와 Cimon을 이용한 DB연동하기-2

























//////////////////////////////////////
Sub 리스트업2()

CSqlOpen("SelectQ2")
cnt# = CSqlGetRecordNo("SelectQ2")

wcGridCommand "grid03", 7, 0, 0

for i=1 to cnt

CSqlGetRecord "SelectQ2", i

data1$ = GetTagVal("날짜")
wcGridSetData "grid03",1,i,  data1$

data2$ = GetTagVal("온도")
wcGridSetData "grid03",2,i, data2$

data3$ = GetTagVal("압력")
wcGridSetData "grid03",3,i, data3$

data4$ = GetTagVal("유량")
wcGridSetData "grid03",4,i, data4$

wcGridSetData "grid03",0,i, i '번호입력

blank$ = " "
wcGridSetData "grid03",0,i+1, blank$ '번호삭제
wcGridSetData "grid03",0,i+2, blank$
wcGridSetData "grid03",0,i+3, blank$
wcGridSetData "grid03",0,i+4, blank$

next i

CSqlClose("SelectQ2")

End Sub


2017년 7월 26일 수요일

Access와 Cimon을 이용한 DB연동하기
















































































































/////////////////////////////////////////
Sub 검색()

CSqlOpen("SelectQ")
CSqlClose("SelectQ")

End Sub



/////////////////////////////////////////
Sub 삽입()

CSqlRun "InsertQ"

RunScript("리스트업") 'DB리스트 갱신

End Sub


/////////////////////////////////////////
Sub 갱신()

CSqlRun "UpdateQ"

RunScript("리스트업") 'DB리스트 갱신

End Sub


/////////////////////////////////////////
Sub 삭제()

CSqlRun "DeleteQ"

RunScript("리스트업") 'DB리스트 갱신

End Sub



/////////////////////////////////////////
Sub 리스트업()

CSqlOpen("SelectAll")
cnt# = CSqlGetRecordNo("SelectAll")

wcGridCommand "grid02", 7, 0, 0

for i=1 to cnt

CSqlGetRecord "SelectAll", i

data1$ = GetTagVal("날짜")
wcGridSetData "grid02",1,i,  data1$

data2$ = GetTagVal("온도")
wcGridSetData "grid02",2,i, data2$

data3$ = GetTagVal("압력")
wcGridSetData "grid02",3,i, data3$

data4$ = GetTagVal("유량")
wcGridSetData "grid02",4,i, data4$

wcGridSetData "grid02",0,i, i '번호입력

blank$ = " "
wcGridSetData "grid02",0,i+1, blank$ '번호삭제

next i

CSqlClose("SelectAll")

End Sub



2017년 7월 19일 수요일

데이터수집_엑셀저장


























///////////////////설정시간 데이터수집

Sub OutputFile()

flagD = GetTagVal("save_start")

if flagD = 1 then
start_time$ = GetTagVal("시작시간")
SetTagVal "start_time", start_time$
else
start_time$ = GetTagVal("start_time")
end_time$ = GetTagVal("끝시간")

intval = DateDiff("s", start_time$, end_time$)
SetTagVal "interval", cstr(intval)

FileName$ = "D:\EXCEL\" & TimeStr(44) & ".xls"
FileOld$ = "D:\EXCEL\Ex.xls"

If FileExists(FileName$) then
else
FileCopy FileOld$, FileName$
end if

Set XelApp = CreateObject("Excel.Application")
Set XelFile = XelApp.Workbooks.Open(FileName$)
Set ws = XelFile.sheets.item("sheet1")

Cell_Cnt = 1

ws.Cells(Cell_Cnt,1) = "시간"
ws.Cells(Cell_Cnt,2) = "ANA1"
ws.Cells(Cell_Cnt,3) = "ANA2"

for i=1 to intval
setDate$ = DateAdd("s",i,start_time$)
hh$ = hour(setDate$)
mm$ = minute(setDate$)
ss$ = second(setDate$)

nowTime$ = hh$ & "시" & mm$ & "분" & ss$ & "초"

ws.Cells(Cell_Cnt+i,1) = nowTime$
ws.Cells(Cell_Cnt+i,2) = DLogVal("ANA1", nowTime$)
ws.Cells(Cell_Cnt+i,3) = DLogVal("ANA2", nowTime$)

next i

ws.Calculate
XelFile.Save
XelApp.Quit

end if

End Sub



///////////////////실시간 데이터수집

Sub OutputFile2()

flagD = GetTagVal("save_start2")

if flagD = 1 then
start_time$ = now()
SetTagVal "start_time2", start_time$
else
start_time$ = GetTagVal("start_time2")
end_time$ = now()

intval = DateDiff("s", start_time$, end_time$)
SetTagVal "interval", cstr(intval)

FileName$ = "D:\EXCEL\" & TimeStr(44) & ".xls"
FileOld$ = "D:\EXCEL\Ex.xls"

If FileExists(FileName$) then
else
FileCopy FileOld$, FileName$
end if

Set XelApp = CreateObject("Excel.Application")
Set XelFile = XelApp.Workbooks.Open(FileName$)
Set ws = XelFile.sheets.item("sheet1")

Cell_Cnt = 1

ws.Cells(Cell_Cnt,1) = "시간"
ws.Cells(Cell_Cnt,2) = "ANA1"
ws.Cells(Cell_Cnt,3) = "ANA2"

for i=1 to intval
setDate$ = DateAdd("s",i,start_time$)
hh$ = hour(setDate$)
mm$ = minute(setDate$)
ss$ = second(setDate$)

nowTime$ = hh$ & "시" & mm$ & "분" & ss$ & "초"

ws.Cells(Cell_Cnt+i,1) = nowTime$
ws.Cells(Cell_Cnt+i,2) = DLogVal("ANA1", nowTime$)
ws.Cells(Cell_Cnt+i,3) = DLogVal("ANA2", nowTime$)

next i

ws.Calculate
XelFile.Save
XelApp.Quit

end if

End Sub

2017년 7월 15일 토요일

사기(만화)_사마천



전 11권
지하철에서 누가 보고 있길래 찾아보니 출판사가 시공사네...
전두환 아들회사..
사서보긴 그렇고 도서관가서 봐야것다..

세계사편력_자와할랄 네루




간디와 함께 인도의 독립운동을 이끈 지도자이자 초대총리였던 자와할랄 네루가 딸에게 보낸 옥중 편지를 모아 엮은 책. 
서구 중심의 역사관을 극복하고 균형된 시각에서 동서양의 역사를 바라본 고전으로 꼽힌다. 

고대문명과 그리스-로마문명에서 인도사, 프랑스대혁명과 미국혁명, 러시아혁명을 거쳐 독일에서의 나치집권에 이르기까지 세계사의 중요한 사건들이 포함되어 있다.



사용자정의통신_동영상


-사용자정의통신_이종연결




-사용자정의통신_PLC와CIMON연결











2017년 7월 6일 목요일

블루투스로 스텝모터 정역회전제어와 FND표시


#include <SoftwareSerial.h>

SoftwareSerial BTSerial(0, 1);

int A = 2;              //L293 연결시작포트
int step_table[4][4] = {
  {1, 0, 0, 1}, {1, 1, 0, 0}, {0, 1, 1, 0}, {0, 0, 1, 1}
};                         //Full-Step 테이블
int pin = 7;            //FND시작포트
int table[16][7] = {
  {1, 1, 1, 1, 1, 1, 0}, //0
  {0, 1, 1, 0, 0, 0, 0}, //1
  {1, 1, 0, 1, 1, 0, 1}, //2
  {1, 1, 1, 1, 0, 0, 1}, //3
  {0, 1, 1, 0, 0, 1, 1}, //4
  {1, 0, 1, 1, 0, 1, 1}, //5
  {1, 0, 1, 1, 1, 1, 1}, //6
  {1, 1, 1, 0, 0, 1, 0}, //7
  {1, 1, 1, 1, 1, 1, 1}, //8
  {1, 1, 1, 0, 0, 1, 1}, //9
  {1, 1, 1, 0, 1, 1, 1}, //A
  {0, 0, 1, 1, 1, 1, 1}, //B
  {0, 0, 0, 1, 1, 0, 1}, //C
  {0, 1, 1, 1, 1, 0, 1}, //D
  {1, 0, 0, 1, 1, 1, 1}, //E
  {1, 0, 0, 0, 1, 1, 1}  //F
};

void setup()
{
  BTSerial.begin(9600);

  int i;
  for (i = 0; i < 4; i++)
    pinMode(A + i, OUTPUT);
  pinMode(A0, OUTPUT);  //LED1
  pinMode(A1, OUTPUT);  //LED2
  for (i = 0; i < 7; i++)
    pinMode(pin + i, OUTPUT);
}

void CW(int myDelay)
{
  int i, j, k;

  for (i = 0; i < 50; i++)
  {
    for (j = 0; j < 4; j++)
    {
      for (k = 0; k < 4; k++)
        digitalWrite(A + k, step_table[j][k]);
      delay(myDelay);
    }
  }
}

void CCW(int myDelay1)
{
  int i, j, k;

  for (i = 0; i < 50; i++)
  {
    for (j = 0; j < 4; j++)
    {
      for (k = 0; k < 4; k++)
        digitalWrite(A + k, step_table[3 - j][k]);
      delay(myDelay1);
    }
  }
}

void fnd(int num)
{
  int i, j;
  j = num;
  for (i = 0; i < 7; i++)
    digitalWrite(pin + i, table[j][i]);
}

void loop()
{
  int i, j;
  int inData;

  if (BTSerial.available())
  {
    fnd(0);
    inData = BTSerial.read();
    if (inData == 'A')
    {
      digitalWrite(A1, 0);
      digitalWrite(A0, 1);
      for (i = 0; i < 5; i++)
      {
        CW(10);
        fnd(i + 1);
      }
    }

    if (inData == 'B')
    {
      digitalWrite(A0, 0);
      digitalWrite(A1, 1);
      for (j = 0; j < 4; j++)
      {
        CCW(20);
        fnd(j + 1);
      }
    }
  }

  delay(1000);
}



/*
  #include <SoftwareSerial.h>

  SoftwareSerial BTSerial(0,1);

  int inData;
  int LED1 = A0;

  void setup()
  {
  BTSerial.begin(9600);
  pinMode(LED1,OUTPUT);
  }

  void loop()
  {
    if(BTSerial.available())
    {
      inData = BTSerial.read();
      if (inData == 'A')
        digitalWrite(LED1,HIGH);
      if (inData == 'D')
        digitalWrite(LED1,LOW);

       delay(1000);
      }
  }
*/