### UP&DOWN 프로그램 PLC CIMOND ###
다운로드
### 프로그램 설계도 ###
### 프로그램 해석도 ###
- 게이지
- 게이지 설정
- 상승 하강 모션
- 상승 하강 모션 시각화
### 연동 프로그램 ###
CICON
https://story-of-flower.tistory.com/153
### UP&DOWN 프로그램 PLC CIMOND ###
다운로드
### 프로그램 설계도 ###
### 프로그램 해석도 ###
### 연동 프로그램 ###
CICON
https://story-of-flower.tistory.com/153
### UP&DOWN 프로그램 PLC CICON ###
다운로드
### 프로그램 설계도 ###
### 프로그램 해석도 ###
게이지 효과 프로그램이다
### 연동 프로그램 ###
CIMOND3.9v
https://story-of-flower.tistory.com/154
숫자바뀜 감지 프로그램 PLC CICON (0) | 2020.01.10 |
---|---|
스케일링 실행 프로그램 PLC CICON (0) | 2020.01.10 |
실행 1초동안 출력 프로그램 PLC CICON (0) | 2020.01.02 |
물탱크 수위 자동 조절 프로그램 (0) | 2019.12.30 |
수위 센서 작동 (0) | 2019.12.27 |
### 실행 1초동안 출력 프로그램 PLC CICON ###
다운로드
### 프로그램 설계도 ###
### 프로그램 해석도 ###
1초동안 실행 프로그램이다
### 연동 프로그램 ###
스케일링 실행 프로그램 PLC CICON (0) | 2020.01.10 |
---|---|
CICON PLC UP&DOWN 만들기 (0) | 2020.01.03 |
물탱크 수위 자동 조절 프로그램 (0) | 2019.12.30 |
수위 센서 작동 (0) | 2019.12.27 |
10초후 실행 프로그램 PLC CICON (0) | 2019.12.27 |
자 제일 햇갈리는 이것부터 해보자
PLC부터 설정하자
이거 이르 들 잘 맞쳐야함
기기랑 CPU 정보 맞추는 거임
왼쪽 밑에 잘보자 Connection Destinaltion
이거 눌러서 인터넷 설정해야함
저거 더블클릭
일단눌러지는거 노란색으로 표시되있다
맨위에부터
Ethernet Board 는
난 TCP 통신으로 할꺼다
PLC Module
여기서 자동 찾기도 있으니
Ficd CPU 누르면 내가 접속 되있는 인터넷에 PLC 를 찾아준다
이건뭐 딜레이 시간 넘 빠르면 애 힘들어함
그럼 잘됫고
여러가지 만들어준다
보면 메모리 사용을 어디했나 함 보면 좋다
난 주석을 걸어놔서 뭐썻는지 보임
저거 더블 클릭해주자
PLC Parmeter
위에꺼 맨 끝에
Built-in Ethernet Port Setting
클릭
이거보니깐 여러가지 있다 음
저거 IP Addres 는 PLC IP 써주고 밑에는 비워두자
그럼 알아서 잡음
Open Setting을 누르면
아직 이렇게되있는데 요롯게 바꿔준다
그리고 이제 PLC 에 잘 써준다
CHECK 해주고
잘됫다고 한다
End 끝
쪼기 위에 쓰기 해서
써주고
우리세상에 존제하는 PLC
PLC 기계 온 오프!!!
껏다가 켜준다
이젠 SCADA 만 해주면 된다
이건 만들어져있어서 그런데 새걸로 해보자
여기서
통신만 연결하고 그다음에 동작은 알아서 만들어라
땡강부리는 애는 키우지 않는다
스파르타식이 좋음
여기서 같은거 찾아줘야한다
이름은 편한거 하는데 난 기계 이름 줫음
통신블록 쓴 워드 에 맞게 넣어줌
넣어주면 끝
잘만들어짐
데이터베이스 만들기
저따구로 태크 만들어주면 연동되있음
PLC 연산 +, -, *, / (0) | 2019.12.26 |
---|---|
ODBC(Open DataBase Connectivity) (0) | 2019.12.20 |
미쯔비시 명령어 그리고 시뮬레이션 (0) | 2019.12.19 |
PLC 프로그램의 가격 측정 (0) | 2019.12.19 |
Cimon 아날로그 BIT 로 쪼게기 (0) | 2019.12.17 |
DB 를 이렇게 만들어준다
이거를 꼭확인할것
저거 이름 그림 이름으로 스크립트 다바꿀것!!!
##############################################
그림 그려준다 윈도우 컨트롤러 를 사용하여 끌어오면 된다
밑에 큰박스는 리스트 컨트롤러임
이건 날짜
불러와서 설정해준다
스클립트를 만들어준다
이렇게 하면 PRODUCT.CODE 가 바뀌면 그 당시 태그의 내용이 Log DB 모델에 써집니다
Sub PrInsert()
n = DbInsert("PRODUCT")
' 여기서 n 은 0 이 리턴 되야 성공이고 나머지는
' 데이터를 넣지 못했다는 얘기 입니다
End Sub
입력한 시간에서 얻은 레코드에서 어떤 특정 조건을 만족하는 레코드만 따로 뽑아 낼 수 있는 방법이 존재합니다 .
.
Sub PrTimeFind()
sDate$ = GetTagVal ("PRODUCT.SDATE")
sTime$ = GetTagVal ("PRODUCT.STIME")
' 달력 컨트롤에 물린 태그로 부터 검색 시작 날짜와 시간을 얻어온다.
eDate$ = GetTagVal ("PRODUCT.EDATE")
eTime$ = GetTagVal ("PRODUCT.ETIME")
' 달력 컨트롤에 물린 태그로 부터 검색 종료 날짜와 시간을 얻어온다.
DbSetFindTimeStr "PRODUCT",sDate$+sTime$,eDate$+eTime$
' 얻어온 시간을 입력 받아서 우리가 만든 PRODUCT 라는 Log DB 모델로
‘부터 검색 시간을 세팅한다.
n = DbFindRun("PRODUCT")
' 실제 검색을 수행한다.
wcGridCommand "그림3",102,0,0
' 그림3 는 우리가 아까 만든 리스트 컨트롤 이름이며 102라는 명령은
' 이 리스트 컨트롤에 걸려있는 Log DB 모델 검색 결과를 출력하는 명령이다.
End Sub
위에서 사용한 스크립트를 돌리기 위해 이전에 했던 것처럼 버튼을 만들고 명령식에 RunScript("PrOutput") 을 작성합니다
Sub PrOutput()
wcSaveData "그림3","D:\Z-Excel\a.csv"
'그림3 의 출력 내용을 csv 지정된 경로에 파일로 출력
wcSaveData "그림3","D:\Z-Excel\a.xlsx"
'엑셀 양식을 복사해서 엑셀 파일로 출력
wcSaveData "그림3","D:\Z-Excel\a.pdf"
'엑셀 양식을 복사해서 수정이 불가능한 pdf 문서로 출력
End Sub
행과 열의 선택이 바뀔 때 마다 "PRODUCT.SEL_STR" 태그 값이 변해야 하므로 "PRODUCT.ROW" 태그에 태그 동작과 태그 변경 시 동작을 체크하고 명령식에 RunScript("PrListChange") 를 써줍니다.
Sub PrListChange()
nRow = GetTagVal("PRODUCT.ROW")
'리스트 컨트롤 행 위치를 얻어 온다.
nCol = GetTagVal("PRODUCT.COL")
'리스트 컨트롤 열 위치를 얻어 온다.
strData$ = wcGridGetData("그림3", nCol, nRow)
' 위에서 구한 행과 열을 가지고 그 위치의 데이터를 얻어온다.
SetTagVal "PRODUCT.SEL_STR", strData$
'태그에 얻어온 값을 쓴다.
End Sub
CimonX에서 검색을 일단 먼저 후 위의 스크립트를 실행 시키면 다음과 같은 결과를 얻을 수 있습니다.
레코드가 차례대로 바뀌는 것을 알 수 있습니다.
Sub PrDirect()
nCnt = DbFindCount("PRODUCT")
' 찾은 레코드 수를 얻어온다.
n = DbFindFirstItem("PRODUCT")
' 첫번째 레코드로 이동한다.
for i= 1 to nCnt
' 레코드 수 만큼 루프를 돈다.
strVal$ = DbFindItemData("PRODUCT","TIME")
SetTagVal "PRODUCT.FIND_VAL1",strVal$
' 현 레코드 위치에서 시간 문자열을 얻어온다.
strVal$ = DbFindItemData("PRODUCT","CODE")
SetTagVal "PRODUCT.FIND_VAL2",strVal$
' 현 레코드에서 PRODUCT 모델에서 CODE 아이템에 있는 값을 가져와서 가상태그에 쓴다.
strVal$ = DbFindItemData("PRODUCT","ALERT")
SetTagVal "PRODUCT.FIND_VAL3",strVal$
' 현 레코드에서 PRODUCT 모델에서 ALERT 아이템에 있는 값을 가져와서 가상태그에 쓴다.
strVal$ = DbFindItemData("PRODUCT","TC")
SetTagVal "PRODUCT.FIND_VAL4",strVal$
' 현 레코드에서 PRODUCT 모델에서 TC 아이템에 있는 값을 가져와서 가상태그에 쓴다.
strVal$ = DbFindItemData("PRODUCT","PRESS")
SetTagVal "PRODUCT.FIND_VAL5",strVal$
' 현 레코드에서 PRODUCT 모델에서 PRESS 아이템에 있는 값을 가져와서 가상태그에 쓴다.
n = DbFindNextItem("PRODUCT")
' 다음 레코드로 이동한다.
Sleep(100)
'너무 빨리 지나가므로 좀 천천히 지나가게 해서 값을 확인
next i
End Sub
검색 내용을 뒤부터 먼저 출력하고 싶다면
Sub PrDirectReverse()
nCnt = DbFindCount("PRODUCT")
' 찾은 레코드 수를 얻어온다.
n = DbFindLastItem("PRODUCT")
' 첫번째 레코드로 이동한다.
for i= 1 to nCnt
' 레코드 수 만큼 루프를 돈다.
strVal$ = DbFindItemData("PRODUCT","TIME")
SetTagVal "PRODUCT.FIND_VAL1",strVal$
' 현 레코드 위치에서 시간 문자열을 얻어온다.
strVal$ = DbFindItemData("PRODUCT","CODE")
SetTagVal "PRODUCT.FIND_VAL2",strVal$
' 현 레코드에서 PRODUCT 모델에서 CODE 아이템에 있는 값을 가져와서 가상태그에 쓴다.
strVal$ = DbFindItemData("PRODUCT","ALERT")
SetTagVal "PRODUCT.FIND_VAL3",strVal$
' 현 레코드에서 PRODUCT 모델에서 ALERT 아이템에 있는 값을 가져와서 가상태그에 쓴다.
strVal$ = DbFindItemData("PRODUCT","TC")
SetTagVal "PRODUCT.FIND_VAL4",strVal$
' 현 레코드에서 PRODUCT 모델에서 TC 아이템에 있는 값을 가져와서 가상태그에 쓴다.
strVal$ = DbFindItemData("PRODUCT","PRESS")
SetTagVal "PRODUCT.FIND_VAL5",strVal$
' 현 레코드에서 PRODUCT 모델에서 PRESS 아이템에 있는 값을 가져와서 가상태그에 쓴다.
n = DbFindPrevItem("PRODUCT")
' 이전 레코드로 이동한다.
Sleep(1000)
' 너무 빨리 지나가므로 사람이 볼 수 있게 천천히
next i
End Sub
리스트컨트롤은LogDB 내용을 검색할 수도 있지만 사용자가 임의대로 값을 출력할 수도 있고 파일(csv 형태일 때만 가능) 을 읽어서 값을 표출할 수 있습니다.
아래와 같은 스크립트를 작성해고 실험해 봅니다.
Sub PrGaraData()
wcGridCommand "그림3", 100, 0, 0
'리스트 컨트롤 내용을 모두 지운다
for nRow = 0 to 25
'행을 0 부터 25 까지 돌린다.
data$ ="GaraA"+CStr(nRow)
wcGridSetData "그림3", 0, nRow, data$
'임의의 데이터를 만든 후 nRow 행 0열에 데이터를 쓴다
data$ ="GaraB"+CStr(nRow)
wcGridSetData "그림3", 1, nRow, data$
'임의의 데이터를 만든 후 nRow 행 1열에 데이터를 쓴다
data$ ="GaraC"+CStr(nRow)
wcGridSetData "그림3", 2, nRow, data$
'임의의 데이터를 만든 후 nRow 행 2열에 데이터를 쓴다
data$ ="GaraD"+CStr(nRow)
wcGridSetData "그림3", 3, nRow, data$
'임의의 데이터를 만든 후 nRow 행 3열에 데이터를 쓴다
data$ ="GaraE"+CStr(nRow)
wcGridSetData "그림3", 4, nRow, data$
'임의의 데이터를 만든 후 nRow 행 4열에 데이터를 쓴다
next nRow
End Sub
다음과 같은 스크립트를 실행합니다.
Sub PrGaraLoad()
wcGridCommand "그림3", 100, 0, 0
'리스트 컨트롤 내용을 모두 지운다.
wcLoadData "그림3","D:\gara.csv"
'gara.csv 를 읽어 들여 리스트컨트롤에 뿌려준다.
End Sub
이코드들 다만들어준다 8개임
이제 순서대로 하나씩 해보자
이런버튼하나 만들어준다
엑셀 만들어준다
C:\CIMON\SCADA 3.90\스마트팜\LOGDB 요따가 저장햇다난
리스트 컨트롤 다시 설정해주자
버튼도 만들어주자
끝!!
CIMON access 하기 ODBC (0) | 2019.12.23 |
---|---|
CIMON SCADA 외부 접속 통신 하는법 (0) | 2019.12.23 |
CIMON OpenPageEx() 함수 (0) | 2019.12.17 |
CIMON 스크립트 만들어보자 (0) | 2019.12.17 |
CIMON 여러가지 설정에 관하여 (0) | 2019.12.17 |