베레미즈에서 wxGlade의 UI의 모든 메서드의 기능은 사용할 수 있지만 사용자 정의 함수는 사용할수 없는거 같습니다 



 


위 그림처럼 wx.Button의 메서드는 두개 뿐입니다
그밖의 기능은 사용자가 직접 코딩해서 사용합니다


 




wxGlade에서 함수 기능을 설정하면 기본 구조는 소스 안에 정의 됩니다 
정의된 소스안에 코딩은 wxGlade의 UI프로그램으로 할 수 없고 소스를 열어 직접 코딩하게 됩니다

 여기서 문제가 되는것은 베레미즈는 빌드를 할때마다 빌드 폴더 내용 전체가 새로 갱신된다는데 있습니다
소스에 직접 코딩 내용을 적는다 해도 지워지고 맙니다

 일단 저는 이 문제를 해결하기 위해 베레미즈(beremiz)에서 다른 UI 기능으로 우회해서 프로그래밍 하는 방법을 생각해 보고 있습니다


저작자 표시 비영리 변경 금지
신고





Posted by 파란물






크게 3가지로
서버를 실행한후
마스터 run
슬래이브 run 으로 진행 됩니다




CAN_TCP_Server를 클릭합니다




콘솔창이 뜬것을 확인합니다
바로 써버가 실행 중임을 확인할 수 있습니다



이제 베레미즈를 실행합니다

베레미즈 프로그램에서 File -> Open 클릭

Beremiz/beremiz/tests/canopen_master를 엽니다

베레미즈를 하나더 열어서 슬래이브도 프로젝트도 열어줍니다
Beremiz/beremiz/tests\canopen_slave

만약 프로젝트를 끝까지 실행 했는데 결과물이 안보인다면 베레미즈를 관리자 권한으로 실행을 하면 될수도 있습니다
그래도 안되면 컴퓨터를 재부팅하고 다시 처음부터 하는 방법으로도 해결 가능합니다





master부터
Build -> connect -> Transger -> run을 순서대로 눌러줍니다

CAN_TCP_Server에 접속한것을 확인할 수 있습니다

slave도 같은방식으로
Build -> connect -> Transger -> run을 순서대로 눌러줍니다




두개가 접속된 걸 확인할수 있습니다








베레미즈의 왼쪽 창에서 Instances탭을 눌러 +버튼을 끝가지 누르면 위와 같이 실행되고 있는 모습을 볼수 있습니다


CAN통신을 대신해 TCP서버가 중간 열할을 해주는 예제 입니다

간단한 코드 설명을 하자면

처음 마스터에 있는 ADD FB가 1dmf 받고 PLC_IN을 받아 더한값을 PLC_OUT으로 슬레이브로 값을 보냅니다
이후 슬래이브는 마스터가 보낸 값을 invar로 받아 ADD FB로 1을 더한후 다시 outvar로 값을보내 마스터로 보냅니다



CAN 통신 내용은 공부를 더 한후 정리해서 올려보도록 하겠습니다
일단은 Topology에서 Objdictedit - MasterGenerated를 통해 CAN 통신 설정을 할 수 있습니다


저작자 표시 비영리 변경 금지
신고





Posted by 파란물








Programs에서 오른쪽 마우스를 눌러 Add POU를 선택하면 뜨는 창 입니다
뒷 창에서 보면 이미 main_pytest가 추가되어 있는데 그걸 추가하는 과정 입니다

POU Namem에 원하는 이름을 적습니다
POU Type엔 program을 선택합니다 (다른것을 선택하면 다른 목록 밑에 추가 됩니다)
Language는 필요한 언어로 선택합니다






Configurations오른쪽 마우스를 눌러 Add new configuration을 누르면 뜨는 창입니다
con_XXX형식으로하면 나중에 알아보기 쉽습니다(꼭 해야 하는 것은 아닙니다)






+를 눌러 아래 목록을 봅니다
Resoures에서 오른쪽 마우스를 눌러 Add new resource를 선택하면 뜨는 창입니다
res_XXX형식으로 이름을 지어주면 식별하기 좋습니다 (꼭 이래야 하는것은 아닙니다)






FB로 코딩을 한 모습입니다
FB가 보이는 페이지를 열어놓고 아래 창에서 Variables탭을 누릅니다
처음에는 pyton_eval과 관련된것만 자동으로 추가되어 있고 나머지는 직접 Add를 눌러 추가 해주어야 합니다
코딩한 FB의 변수와 같은 이름으로적어주고 Type를 선택해 줍니다






Tasks 이름은 프로젝트와 관련된 이름으로 적어줍니다 Interval은 어느주기로 테스크가 돌지를 적어줍니다

Instances 이름도 프로젝트와 관련된 이름을 적어줍니다
Type은 직접 적는 곳이 아닙니다 이전에 적었던 Progrmas에 적은main_pytest가 목록에 있을것입니다 그것을 선택합니다
Task는 위에 적은 테스크를 선택적으로 할당할수 있게 해줍니다


저작자 표시 비영리 변경 금지
신고





Posted by 파란물








windows에서

can_tcp_win32
can_peak_win32_USB
can_peak_win32_DBG
can_peak_win32_PCC1
can_peak_win32_PCC2
can_peak_win32_PCC_DUAL
can_peak_win32_PCI1
can_peak_win32_PCI2
can_peak_win32_PCIDUAl





드라이버가 있는 폴더 위치
/Beremiz/mingw/bin







그 외에 드라이버를 만들수 있게 많은 종류의 소스가 있습니다
*.C 파일로 존재합니다

AT91
AVR
can_anagate_linux
can_anagate_win32
can_can4linux
can_ixxat_win32
can_kvaser
can_lincan
can_peak_linux
can_peak_win32
can_serial
can_socket
can_tcp_win32
can_uvccm_win32
can_virtual
can_virtual)kemel
can_vscom
hcs12
trimers_kernel
timers_rtai
timers_unix
tirmers_win32
timers_xeno
unix
win32

이 폴더가 있는곳 입니다
Beremiz/CanFestival-3/drivers


저작자 표시 비영리 변경 금지
신고





Posted by 파란물







http://www.beremiz.org/

plc프로그래밍을 할수 있는 오픈소스 에디터 이다

현재 크리스마스 버전으로 1.0이 나와 있는 상태

IL, ST, LD, FBD, SFC로 코딩을 할수 있고
IEC 61131-3을 표준으로 한다
그래픽 툴로 SVG와 wxGlade의 사용이 가능하다
CANopen으로 CAN통신을 지원한다

윈도우 버전과 리눅스 버전이 있으나 아직 많은 정보가 있진 않다




저작자 표시 비영리 변경 금지
신고





Posted by 파란물

티스토리 툴바