2017년 9월 21일 목요일
2017년 8월 25일 금요일
2017년 8월 17일 목요일
DB-output
Sub OutputFile()
flagD = gettagval("save_start")
ST = gettagval("시작시간")
ET = gettagval("종료시간")
if flagD = 1 then '시작시간 저장
start_time$ = ST
'start_time$ = now()
settagval "start_time", start_time$
else
start_time$ = gettagval("start_time")
'end_time$ = ET
end_time$ = now()
'시작시간에서 몇 초가 경과 되었는지 계산
intval = DateDiff("s",start_time$, end_time$)
settagval "interval", cstr(intval)
'엑셀파일 경로
FileName$ = "D:\DB\NEW\" & TimeStr(44) & ".xlsx" '생성될 파일
'FileName$ = "D:\" & TimeStr(44) & ".xlsx" '생성될 파일
FileOld$ = "D:\DB\Ex.xlsx" '양식 파일
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) = "좌표DB"
ws.Cells(Cell_Cnt,3) = "입고DB"
ws.Cells(Cell_Cnt,4) = "출고DB"
ws.Cells(Cell_Cnt,5) = "재고DB"
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("좌표DB", nowTime$)
ws.Cells(Cell_Cnt+i,3) = Dlogval("입고DB", nowTime$)
ws.Cells(Cell_Cnt+i,4) = Dlogval("출고DB", nowTime$)
ws.Cells(Cell_Cnt+i,5) = Dlogval("재고DB", nowTime$)
next i
ws.Calculate
XelFile.Save
XelApp.Quit
end if
End Sub
flagD = gettagval("save_start")
ST = gettagval("시작시간")
ET = gettagval("종료시간")
if flagD = 1 then '시작시간 저장
start_time$ = ST
'start_time$ = now()
settagval "start_time", start_time$
else
start_time$ = gettagval("start_time")
'end_time$ = ET
end_time$ = now()
'시작시간에서 몇 초가 경과 되었는지 계산
intval = DateDiff("s",start_time$, end_time$)
settagval "interval", cstr(intval)
'엑셀파일 경로
FileName$ = "D:\DB\NEW\" & TimeStr(44) & ".xlsx" '생성될 파일
'FileName$ = "D:\" & TimeStr(44) & ".xlsx" '생성될 파일
FileOld$ = "D:\DB\Ex.xlsx" '양식 파일
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) = "좌표DB"
ws.Cells(Cell_Cnt,3) = "입고DB"
ws.Cells(Cell_Cnt,4) = "출고DB"
ws.Cells(Cell_Cnt,5) = "재고DB"
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("좌표DB", nowTime$)
ws.Cells(Cell_Cnt+i,3) = Dlogval("입고DB", nowTime$)
ws.Cells(Cell_Cnt+i,4) = Dlogval("출고DB", nowTime$)
ws.Cells(Cell_Cnt+i,5) = Dlogval("재고DB", nowTime$)
next i
ws.Calculate
XelFile.Save
XelApp.Quit
end if
End Sub
2017년 8월 14일 월요일
CIMON-아두이노 485통신
#include <SoftwareSerial.h>
#include <SimpleModbusSlave.h>
int a[2] = {A0,A1};
int fnd_a = 3;
int buffer[2] = {0};
int analogValue;
unsigned char table[10][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
};
enum
{
/* ADC0,
ADC1,
ADC2,
ADC3,
ADC4,
ADC5, */
FND_STATE, //40001
TOTAL_ERRORS, // leave this one
TOTAL_REGS_SIZE // total number of registers for function 3 and 16 share the same register array
};
unsigned int holdingRegs[TOTAL_REGS_SIZE]; // function 3 and 16 register array
void setup()
{
modbus_configure(9600, 1, 2, TOTAL_REGS_SIZE,0); //국번1
Serial.begin(9600);
int i,j;
for(i=fnd_a; i<fnd_a+7; i++) //FND a핀부터 g핀까지 포트설정
pinMode(i, OUTPUT);
for(j=0; j<2; j++) //FND Control PIN
pinMode(a[j], OUTPUT);
}
void fnd(int STATUS)
{
int j;
switch(STATUS){
case 0: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[0][j]); break;
case 1: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[1][j]); break;
case 2: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[2][j]); break;
case 3: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[3][j]); break;
case 4: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[4][j]); break;
case 5: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[5][j]); break;
case 6: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[6][j]); break;
case 7: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[7][j]); break;
case 8: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[8][j]); break;
case 9: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[9][j]); break;
}
}
void loop()
{
holdingRegs[TOTAL_ERRORS] = modbus_update(holdingRegs);
int i,k = 0;
int STATUS;
byte fndState = holdingRegs[FND_STATE];
analogValue = fndState;
// Serial.println(FND_STATE);
buffer[1] = (analogValue%100)/10;
buffer[0] = analogValue%10;
for(i=0; i<2; i++){
STATUS = buffer[1-i];
fnd(STATUS);
digitalWrite(a[k],LOW);
delay(5);
digitalWrite(a[k],HIGH);
k++;
k = k % 2;
}
}
2017년 8월 11일 금요일
2-Digit FND(F4201AH) 아날로그입력값 표시
int a[2] = {10,11};
int fnd_a = 2;
int buffer[2] = {0};
int analogValue;
unsigned char table[10][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
};
void setup()
{
Serial.begin(9600);
int i,j;
for(i=fnd_a; i<fnd_a+7; i++) //FND a핀부터 g핀까지 포트설정
pinMode(i, OUTPUT);
for(j=0; j<2; j++) //FND Control PIN
pinMode(a[j], OUTPUT);
}
void fnd(int STATUS)
{
int j;
switch(STATUS){
case 0: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[0][j]); break;
case 1: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[1][j]); break;
case 2: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[2][j]); break;
case 3: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[3][j]); break;
case 4: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[4][j]); break;
case 5: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[5][j]); break;
case 6: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[6][j]); break;
case 7: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[7][j]); break;
case 8: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[8][j]); break;
case 9: for(j=0; j<7; j++) digitalWrite(fnd_a+j, table[9][j]); break;
}
}
void loop()
{
int i,k = 0;
int STATUS;
analogValue = analogRead(A0);
Serial.println(analogValue);
buffer[1] = (analogValue%100)/10;
buffer[0] = analogValue%10;
for(i=0; i<2; i++){
STATUS = buffer[1-i];
fnd(STATUS);
digitalWrite(a[k],LOW);
delay(10);
digitalWrite(a[k],HIGH);
k++;
k = k % 2;
}
}
2017년 8월 1일 화요일
피드 구독하기:
글 (Atom)