Home
What is CUBLOC?
Contents
1. Connector Name I O Port Block Explanation PO IO ADCO P1 IO ADC1 P2 IO ADC2 J12 P3 1 0 Block O ADC3 33 P4 1 0 ADC4 P5 IO ADC5 P6 1 0 ADC6 P7 IO ADC7 P8 1 0 PWMO P9 1 0 PWM1 P10 IO PWM2 J13 P11 1 0 Block 1 PWM3 33 P12 1 0 PWM4 INTO P13 I O PWM5 INT1 P14 IO INT2 P15 IO INT3 J14 P16 IO HIGH COUNT INPUT O P17 IN HIGH COUNT INPUT 1 P18 OUTPUT Internally connected to Piezo BUZZER Cannot be accessed from Ladder P19 P2 N C 3 P24 31 OUTPUT Block 3 8 Output Ports J2 P32 39 OUTPUT Block 4 8 Output Ports P40 47 OUTPUT Block 5 8 Output Ports P48 55 OUTPUT Block 6 8 Output Ports P56 63 INPUT Block 7 8 Input Ports J4 P64 71 INPUT Block 8 8 Input Ports P72 79 INPUT Block 9 8 Input Ports P80 87 INPUT Block 10 8 Input Ports N C No Connection means it s not used CUTOUCH I O ports are natively 5V friendly to input 24V or use relay please use our CUTOUCH add on board If you input more than 5V into a CUTOUCH I O port it could cause the product to mal function so please be careful 283 There are extra RS232 connectors as shown below so you have the flexibility to be able to access CUTOUCH when in an enclosed area I COMFILE Technolosy gt RS232 Addtional Connector RS232 Channel 1 Download cable O The Downl
2. 285 Backup Battery CUTOUCH will maintain data in its data memory after power OFF by using its backup battery If backup is not needed the program must clear the memory at the beginning of the program In BASIC RAMCLEAR command can be used to clear all data memory at the start of the program The CUTOUCH comes with a self charging super capacitor which can last couple hours to couple days depending on your application For adding backup battery please connect to the pins labeled External Battery under the super capacitor The CuTOUCH s 1 0uF super capacitor lasts about 30 hours during power outage You can replace it with a 10uF super capacitor to extend the duration to about 300 hours 12 5 days DEMO FOR CUTOUCH Const Device CT1700 Dim TX1 As Word TY1 As Word TX1 0 TYL 0 Clear just this variable RAMCLEAR Clear all RAM For LADDER all relays S M C T and D are backed up by the backup battery Relay P is cleared at power ON by default If you only want to clear parts of the relay not all relays you can use the following method to clear Const Device CT1700 Dim I As Integer For I 0 to 32 Clear only relay MO to M32 M I 0 Next Set Ladder On Most traditional PLCs have KEEP memory for storing and restoring data in case of power down CUTOUCH also has this feature by using a super capacitor which recharges itself and acts as a backup ba
3. I CuBLOC dk 1 0 Port O SE ANN o ra 080 Ana 270 Ava Ae H _ 2a Ar 22K KPC714 100 zn 17 5v 239 How to connect AD Input To connect an AD input to the CB280 AVDD and AVREF pins must be connected to 5V AVDD supplies power to the ADC of CUBLOC and AVREF is the reference voltage that the ADC uses to do conversions If 5V is inputted to AVREF pin O to 5V input voltage will be converted and if 3V is inputted to AVREF pin O to 3V input voltage will be converted DC5V DC5V TTLTX1 TTLRX1 AVREF P48 P31 P30 P29 P28 P32 P33 P34 P35 P36 P37 P38 P39 The CB220 s AVDD and AVREF are internally connected to 5V The following is the simplest type of AD input circuit using a Volume knob When you turn the knob the input will be converted by the CUBLOC ADC to a value from 0 to 1023 5V 10Kohm O CUBLOC I O Port 240 The following is AD input that receives 4 to 20mA of input You can use a 230 Ohm and 20 Ohm resistors in serial instead of a 250 Ohm resistor 4 20mA CUBLOC 1 O Port 250ohm For O to 10V of input use 2 resistors as shown below This is also called a voltage divider 1Kohm 0 10V CUBLOC I O Port 1Kohm How to use PWM as Digital to Analog converter CUBLOC has 6 PWM ports If you use the simple circuit shown below you can make a D A converter 10Kohm eG ait _7 O CUBLOC PWM Port 47uF i 241 RS232 HOWTO Pin 1
4. M 221 B NO 221 A A TER COPIE PEERS 221 spe E RE cme wees 221 BOXCICAR er A trate cataedhadedsnadeciteledect ean Eaa a eia seta hats 222 BOxT uc id 222 A O ON 222 jener E 223 El EE 223 AAA e exutus OT 223 Ej lote TOP E 223 Cj ol gu PERPE TE dhsscdanesetiGateees icsg athadisered casvehsTocachedetial ntehecatesete toate 224 DP irt E 224 Bug 225 lap T LE 226 eR 226 Linestyle saiisine pendent ays ancewnnde da tenets aap ar angewanduen seeds ai 226 DOUSIZG a E e 226 PM ns i tadas e 227 AICA COTA AO ceded ee E A reve det duda Ev ehe 227 DOCH us eco quee Serre OO 227 BIN Pica sod A A desks na XA VE san adanes 228 Cle EE 229 CLP EE 229 Cri cM CET 230 Ines eR RUP HERES MORD PERDERE 231 eoe E 231 Hp paste noera iie Gee Perret saei dre mU ero zur Ee reu EE Eanes a a Re Ara ida gen dans alanis 231 Seven Segment Display CSG Series seeesee ne 233 Bele EET 234 CSOMPU Us CEP E C ERE ECCRENAE 235 GTP er EE 236 ESA tertie ib e cb be Ue iei e Asp LES 236 co 236 Input Output Circuits RS2Z32 HOW Oso otitis E A E pna a GUNET erede sese ex xo vend in ener veo sien eyes dde CUBLOC STUDY BOARD Circuit Diagram eee 246 ADOU diicm T A a 248 CHAPTER 9 MODBUS u uvcmoromoocrsssesrrsscosscosscosscrsscrsss 253 About MODBUS Pirene nu a A AA Ad 254 Function Code 01 02 Bit Read ocooccccnconcnccnconnncnncnnnnnnncnncnnoncnnnnnnns 256 Function Code 03 04 Wor
5. In the above LADDER diagram when START turns ON TO Timer will immediately turn ON After START turns OFF timer will start decreasing from 100 to 0 When 0 is reached TO will turn OFF Here 100 is equal to 1 second for TON and 10 seconds for TAOFF 1sec Mm stant M a 378 CTU This command is an UP Counter When input is received the counter is incremented one When the counter counts to a specified value the set relay will turn ON at that point There is a Reset input so the counter can be reset as needed PULSE CTU C0 100 C RESET R 100 pulse PULSE MOMs nada RESET 1 BB co ES CTD This command is a DOWN Counter When input is received the counter is decremented one When the counter reaches 0 the set relay will turn ON at that point There is a Reset input so the counter can be reset as needed PULSE CTD C1 100 C RESET R 100 pulse purse MANN OAM reset 1 B C1 379 UP DOWN COUNTER Below is a simple way of how UP Counter can be used to make a UP DOWN Counter P CTU C0 100 C Pi I P2 WDEC CO HI F c 1 PO is for counting UP P2 is for counting DOWN and P1 is for resetting the COUNTER When Counter reaches 100 CO turns ON co COUNT co Ma 380 KCTU This command is exactly same as CTU command except this command will be able to remember counter value when module is powered off The module used f
6. Command Command Name 01 02 Bit Read 03 04 Word Write 05 1 Bit Write 06 1 Word Write 15 Multiple Bit Write 16 Multiple Word Write Please refer to Chapter 9 for detailed MODBUS description and MOBUS ASCII and RTU examples 178 Set Outonly SET OUTONLY On Off The CB290 CT1720 Rev B output ports P24 P55 are in high impendence High Z state in order to prevent garbage values outputting at power ON You must use Set OUTONLY ON command to set the CB290 CT1720 output ports to output status Const device cb290 Set outonly on Low 24 179 Set Pad SET PAD mode packet buffersize mode Bit Mode 0 255 packet Packet Size 1 255 buffersize Receive Buffer Size 1 255 The CUBLOC has a dedicated port for Keypad Touchpad inputs similar to a PC s Keyboard and Mouse ports This port can be used with the Set Pad command to create interrupts when input is received on the Keypad Touchpad etc This port is basically a Slave mode SPI communication To use the PAD communications you must use Set Pad command at the beginning of your program The PAD communication uses 4 wires SCK is used as clock signal SS as Slave Select MOSI as Master Out Slave In and MISO as Master In Slave Out signals MOSI MOSI MISO 4 MISO avda HONOL o O A o O A TOUCH PAD CONTROLLER EMBLOE I O ports PO through P3 can be used for PAD communications SOUT SIN
7. 85888886 g 592222223 9 tasu amp amp u8 amp uEs5 SB5Ss 255850502cat55 di nnnunnnnnnnnnnnnrn q issssssusssossasse u Cp app ome ds sE por ch a oem rj 4p om Os as O res y CUBLOC Bw Os ap rs rj CB280CS sop oes Che sp ow qu Main Chip sp re Oh 2H pe g sp a qu sp mo rs 0 mm ge shy Po JUUBUUUUUUUUHUUUU retbexetzrpe reve te Saampeesegakskeaaaa E gb 22 55 aia 22 VDD Y sE vss R5 C2 DUBLOD Ro CB280CS R4 Cs 454 cs LI R1 R3 C4 5L3 n2 The CUBLOC Chipset comes with a MAIN CHIP and SUB CHIP The CB220 iscurrently not available as a chipset but you may use the CB280CS for applications developed in CB220 The CB290 isonly provided as a module CuBLOC CRAN0CS E SubChip Pin out PIN No Name Function 1 VDD Power Supply 2 R5 OSC INPUT 3 R4 Reset CUBLOC 4 R3 RS232tx 2 CB280CS 5 R2 RS232 tx 1 MAIN CHIP rm 6 R1 1 0 PORT 1 7 RO RS232 rx 8 vss Ground COMFILE 550 Pilgrim Drive Suite K Foster City CA94404 TECHNOLOGY Call 1 888 9CUBLOC 1 888 928 2562 www comfiletech com 413 Main chip electrical Characteristics Electrical Characteristics Note Typical values contained in this data sheet are based on simulations and characterization of other AVR microcontrollers manu factured on the same process technology Min and Max values will be available after the device is characterized Absolute Maximum Ratings Operating Temperature
8. Cubloc core module with Study board 25 Download and Monitoring through the Internet XPORT is an internet module that converts RS232 signals into TCP or UDP packets You can use XPORT and CUBLOC to download and monitor programs through the internet By using this feature you will be able to update and provide customer service for your products even if it s located in other parts of the world We provide custom XPORT firmware Downloading Monitoring Server programs and embeddable applets for downloading and monitoring your CUBLOC module You may use this program to manage thousands of devices Please refer to our CUBLOC Forum on our homepage for application notes http www cubloc com S TU Server 1 2 0 Copyright c 2005 by Comfle Technology Inc DDR Fie fe Fast Mode Firmware Download E Automatic Re Downlond Imi vH Monitoring P CI Check hore f monitoring CuTOUCH or CR200 Search be ports o 12345 1P 492 168 06 Port 59001 de No 10001 P 192160059 Port 58001 Ie riens Zo um Piceni starte UDF server on part s000 of Monitoring Started at 192 168 0 8 sel dd TS Fare Downoad ses Monitoring Download Server Program for multiple XPORTs 26 Hints for traditional PLC User For users with much experience in traditional PLCs they will find BASIC a completely new language CUBLOC is a PLC with BASIC language capabilities added The user may program only using the la
9. The pulse length is only a numerical value The below table show its conversion to Frequency in Hz Pulse Length Frequency Hz 1 2475 2 2381 10 1786 50 800 100 472 1000 57 With this method you can generate up to about 2475 pulses per second For bigger frequencies you will need to either use the PWM or Freqout command But you cannot control number of pulses with PWM or Freqout Low 5 Fregout 0 2 Output pulses with frequency of 768 KHz Delay 500 delay about 500ms Pwmoff 0 Stop pulses End 318 NOTE 7 RC Servo Motor RC Servo Motors are used by many hobbyist to make remote control cars planes and etc In the recent years it has been used for robot arms legs and other body parts With CUBLOC you can use the PWM to easily implement an RC Servo motor into your project There are 3 wires to the RC servo motor The black wire is ground and red wire is for power The other yellow wire is for inputting PWM signal For PWM signal you can input about 60 pulses per second to enable the RC servo Black GND The RC Servo motor will move to a location set by pulse and duty value and will hold its position By being able to control the exact angles at which the RC servo stops we can control the RC servo as freely as we want 1mS 1 5mS 2mS X ein ee 45 o 45 319 A pulse of 1ms will stop the RC servo at 45 Degree
10. x THR 1000 THR THR is the resistance value 1000 is for 1K Ohm resistor and 5 is for 5 volts The 10 bit A D converter of CUBLOC will return a value between O and 1024 There for to get the A D value you must multiply result V by 204 8 You can easily make a chart by using an excel spreadsheet to enter these formulas lt END gt 309 NOTE 4 Connect to the Internet through XPORT In this application note we will explain how to connect to the internet using XPORT internet module By using an XPORT you can download and monitor your programs through the internet For applications that need customer service and updates you can use XPORT By using XPORT you will be able to check the status of your machine from California to New York and download new programs to your CUBLOC module by using our Java applications We provide open source Java applications in which you can simply edit to customize to your project No special coding is necessary for the basic monitoring and downloading Simply connect the XPORT to CUBLOC You can use XPORT Dongle which has MAX232 chip to convert RS232 signal from 3 3V to 12V This XPORT Dongle is customized to be used with CUBLOC Study Board CUTOUCH proto boards and baseboards by connecting 5V to pin 9 of RS232 connectors To use dongle elsewhere you will have to input 5V to pin 9 of the RS232 connector being used Please check out www cubloc com forum for XPORT applications downloads
11. VALET 4 A xcW Case 3 TOUCH SENS INPUT P3I MS XCCW TOUCH If F KEY1 1 Then MODE 1 CHIRP TIMER 8 5 Fe F_KEY1 0 4 DOORCLOSE TIMER 10 iid End If Incr LEDTIMER Out LED LEDTIMER BIT4 F2 End Select AHA 4 Sub F Yew TOUCH SENS INPUT P9I MID NCW TOUCH TOUCH SENS INPUT P91 MIT YCCN TOUCH TIMER CONTROL Dtzero CHIRP TIMER PR F2 HHH 7 TSENS ZCW ZCC w TOUCH SENS INPUT P9I M12 2CW TOUCH MIZ Ped tow Program 9602 Bytes Data 101 Picture of CUBLOC Studio is shown above 17 There are PLCs on the market currently that supports both LADDER and BASIC But these PLCs do not multi task and run Single task Meaning BASIC is part of LADDER and does not run independently like CUBLOC This can prove to be costly since BASIC is not real time oriented and can affect LADDER part of the program CUBLOC is able to cover these weaknesses through its multi tasking features guaranteeing accuracy and precision of timing Unlike many BASIC processors on the market today CUBLOC supports real time processing and multi tasking CUBLOC has a multi tasking structure that runs BASIC and LADDER simultaneously that allows accurate LADDER scan timing and still processing BASIC You even have a choice of simply using BASIC or LADDER by itself SINGLE TASK MULTI TASK LADDER BASIC LADDER BASIC LADDER BASIC As you can see CUBLOC is a brand
12. eeenen He 364 ladd r instructions 2s vices scence ia 367 LOAD LOADN OUT eT 369 NOT AND OR cos 370 SEIOUT RSTO UT e a ie radiata 371 DIFFU DIED iaa a T 372 MES MESCER acia a 373 STERSE oi A lid 375 ST EPODT eee eti pero reden ED PNE ERR E DIR ERR DR ERES 376 uo marem 377 TORK TAO lieR EE EE 378 CTD A eoe reet sedute 379 UP DOWN COUNTER 1 5 neto rre ient reine aa 380 KCTUL diet tr rente ier tdv kh ode tee The oda 381 KCTD I ES 381 Comparison Logistics drid 382 How to store Words and Double Words omcooccocccnccnccnnccnnnnanonannnons 383 Binary Decimal Hexadecimal sees 384 WMOVDWMOV anita parere eeepc Y nee repe ipa regeret a cet Mea eR EYE 385 WXCEHG DWXGEIG citet eoe tiene reg ad eure eor UD ES 386 due En PE 387 ico ES 388 WINC DWINC WDEC DWDEC eeeenHH HH 389 WADD DWADDBD nire ever dida WSUB DWSU B terre Bret re nE reni a aAa Ea aa dinate geacteses Ee WMULDWMUL 5 2 2a ia ree oerte oe e ac WDIVDWDYVt 22 retira EPI ADAM REIR WOR DWOR enm WXOR DWXOR eee WAND DWAND WRObEDWROL aida WROR DWROR rete tieier Rr cane sedi aa ii ari Pep nera EE GOTO ABEL 3 5 7 ette bete a CALES SBRT RET 23 iue OO INTON A ckites ceneldeevseyedeZecenteceis cues cvs ER eE feaa O Special Relays series a a APPENDIX os 403 Appendix A ASCI CODE vers ird tices nates ede cand iadate babes serate iex aa 404 Appendix B Note for BAS
13. 13 10 130 Bytes of Data Memory DIM ST1 10 AS STRING 12 4 10 20 800 Bytes of Data Memory DIM D 20 10 AS SINGLE 74 Bits and Bytes modifiers A variable s bits and bytes can individually be accessed by using the commands shown below DIM A AS INTEGER DIM B AS BYTE A LOWBYTE amp H12 Store amp H12 at A s lowest byte LOWBIT Variable s bit O BITO 31 Variable s bit 0 through 31 A BIT2 1 Make bit 2 of Al 46 4o 4 x WS LS SES Nibble A Nibble is for 4 bits By using Nibbles the user has more flexibility to manipulate the data LOWNIB Variable s NIBBLE O NIBO 7 Variable s NIBBLE 0 7 A NIB3 7 Store 7 in Nibble 3 of A LONG 9 p LR LR NIB7 NIB6 NIB1 NIBO LOWNIB 75 Byte To specify certain bytes of a variable the below names can be used A Byte is 8 bits LOWBYTE BYTEO BYTE 0 of Variable BYTE1 BYTE 1 of Variable BYTE2 BYTE 2 of Variable BYTE3 BYTE 3 of Variable A BYTEl amp HAB Store amp hab in byte 1 of A LONG BYTES3 BYTE2 BYTE1 BYTEO LOWBYTE Word To specify certain Word of a variable the below names can be used A Word is 16 bits LOWWORD WORDO Word 0 of variable WORD1 Word 1 of variable A WORD1 amp HABCD Store amp habcd in word 1 of A LoNG LOWWORD Max s Tips Need to access 5 bits of a variable Try NewVariable Variable and Ox1F This wil
14. er dde rt A na gee 34 CRL A ES 35 Supplying power to the CB220 000cooccocccncnncnnaconconcnnanoncnncnnaroncnnncnnros 37 CB280 5 s inei S ID keen ELIT EP veis r etus one Dados 38 How to supply power to the CB280 ssseeee mee 40 CB290 oa sae ive sedet Peale ede te ruedas ae sete esee veile uu taee peia 41 How to connect Battery to CB29D0 ooccocccnccncnnncnnnonanonconconanonronnnnnnonos 45 DIMENSION iii rd Sean de a a pep da DOES RR SE EORR eV a Ea Pe Ra Red 46 CUBEOC Chipset CB280CS icio ere ii 48 CHAPTER 3 CUBLOC STUDIO EDITOR COMPILER eet 51 CUBEOC STUDIO BASICS siii ia 52 Creating BASIC ora aa a ia is 54 Y A ONO 55 MA NN 56 CHAPTER 4 CUBLOC BASIC LANGUAGE cccsssssssssssscssssssssssssoossssscssssssnnssssoossssseee 59 CUBLOC BASIC FSATUTES ao a ci 60 Simple BASIC programi us cai id ds 62 Sub afid FUNCION na 63 MAD Si tii a pis 69 SUING A O 70 About Variable Memory Space omconccnccnnccnconconnnnncnnncnnconcnnannnrennannnanos 73 AY Sind La Faccia ie sede cod rure da VR E aa raa aiie aeia Yan v ERRAT 74 Bits and Bytes modifiers oocoocconnnnnnncnnnnnnnnnnnnncnnnonaconconannanencnnnnnnos 75 Ge iei 77 Constatit AFFaySi oie oo i petit n 78 Opera eR TES 80 Expressing Numbers in Bits eeeeeen ee eee eee eee eee eeaeaee ee 83 The BASIC PreproC SSOP cscsceceereecececcessesesuecudeanseensetecateensatesenecnss 84 Conditional ss em 86 To use LADDER ONLY
15. 3 eene rena terne rtr thee n innesa rea aa ipten piia 89 TO se BASIC ON a at ea et fase eerte Ce eee deep r Rr ee 89 Interruption ond eet reo ie pof peva to ioe RO RE kae EE UE ee sac ER ee CU PED E REX 90 Pointers using Peek Poke and Memadr senes 91 Sharing Data erii ei 92 CHAPTER 5 CUBLOC BASIC FUNCTIONS eene tttttteeseenn 95 Math Functions cti idas 96 TYPE CONVERSION fave sacs S 98 String RUNCIONAS notre 99 CHAPTER 6 CUBLOC BASIC STATEMENTS amp LIBRARY cssssssssssssssssssseee 103 Adin 5 deter Bes rires delete res des rixp Perse a ng det cuero xw es dne dek 104 Alias i erectos a err ee e xa aeree beue vus E Ev Ee YES T 106 Bedia Tus 107 li eret A A oa 108 A O OA 109 O m E 110 BIZ Miam rece LEHRER 110 BiIN2DGO ER rH EE RE MA 111 EIE SEES TTD CRUEL DIT LIII ITO 112 Bytein 2 pete these tente eic ol efr tee mh uas 113 IARE OLU MIDI 114 Suede ETE 115 Sod p aaa aa aaea a r aa E a a a 116 COUDILEGSGE A AA 118 Bee AE Ed 119 Ip SIY ta AEEA AEE T AA 120 pre EE T 123 pL 124 DON LOOP pU MUI 125 DEZONO Ma HEN 126 EN stash tance metes oca 127 EAGING e siete aie sye tt ac Gace as 128 O EHE TE 130 RS Plates tense EN a eA AEE a aai aE FreqoULb aci aia GO EAT TTA E E E CO aii EE Ee A EEE E HP IMETI DEP RC PET Gosub Return GOEO E CL TI nip IG az o eese cet AO eei ides I2 statt ucc a ln IESO td te Thru I2Cread I2Cwrite If Then Elseif EN eere
16. 55 C to 125 C NOTICE Stresses beyond those listed under Absolute Maximum Ratings may cause permanent dam Storage Temperatur 65 C to 150 C age to the device This is a stress rating only and functional operation of the device at these or Voltage on any Pin except RESET other conditions beyond those indicated in the with respect to Ground 0 5V to Vec 0 5V operational sections of this specification is not implied Exposure to absolute maximum rating Voltage on RESET with respect to Ground 0 5V to 13 0V conditions for extended periods may affect device reliability Maximum Operating Voltage sees 6 0V DC Current per I O Pin 40 0 mA DC Current Vcc and GND Pins ws 200 0 mA DC Characteristics Ta 40 C to 85 C Voc 2 7V to 5 5V unless otherwise noted Symbol Parameter Condition Min Typ Max Units Vi Input Low Voltage RESET pins and 0 5 0 2 Vec V Via Input Low Voltage Manlii us 0 5 0 1 Voc v Vila Input Low Voltage RESET pin 0 5 0 2 Voc V Vin Input High Voltage RESET cine and 0 6 Veg Voc 0 5 V Ven Input High Voltage siia M 0 7 Veo Voc 0 5 v Vino Input High Voltage RESET pin 0 85 Voc Voc 0 5 V VoL Output Low Voltage lg 20 mA Veg 5V 0 7 V Ports A B C D E F G lo 10 mA Voc 3V 0 5 V Vn Output High Voltage lo 20 mA Voc 5V 4 2 V Ports A B C D E F G loy 10 mA Vgc 3V 24
17. RX P9 P8 CLELEREI mnnm 2B22d0o0 ocos togmc For the CB280 pin 33 or pin 49 can be used Pin 49 outputs 12V level signal and 33 outputs 5V level signal CHANNEL 1 CHANNEL O CHANNEL 1 TX sour 10 617 voo TX TX 330 49 TTLTX1 9 RX gt sm 20 018 vss RX gt RX1 340 50 TTLRX1 4 ArN 30 019 RES AVDD 350 51 AVREF vss 4 920 Nc Nic 360 0 52 P48 Po 50 02 P16 P24 370 53 P31 P1 60 0 22 P17 P25 380 54 P30 P2 70 23 Pis P26 390 55 P29 pP3 8 24 pig PWM3 P27 400 56 P28 PA 9 025 p20 gt PWM4 P47 410 57 P32 Ps 100 26 P21 gt PWM5 P46 42 58 Pas Pe 10 27 P22 P45 430 50 Pad P7 120 O 28 P23 P44 44 60 P35 P8 130 29 P15 PAS 45 90 00 50 P36 P9 14 30 P14 P42 46 62 Por P10 150 31 P13 Pat 47 63 P38 P11 1 60 32 P12 P40 480 64 P39 205 The possible Baud Rate settings are as follows 2400 4800 9600 14400 19200 28800 38400 57600 76800 115200 230400 The recommended buffer size is around 50 to 128 If the send buffer size too small data will not be displayed correctly If the send buffer size is too big it will take up that much data memory space SET DISPLAY 0 1 19200 50 Set Baud rate to 19200 and send buffer to 50 SET DISPLAY command can only be used once at the beginning of the program 206 Method 0 Use CuNET CuNET is a
18. Mes tars If I2cwrite amp H10100000 1 Then ERR PROC Chip Address 0 If I2cwrite ADR BYTE1 1 Then ERR PROC ADDRESS WRITE If I2cwrite ADR LOWBYTE 1 Then ERR PROC I2cstart Repeated Start If I2cwrite amp H10100001 1 Then ERR PROC Read command Ror IL 0 To 10 ADATA I I2cread 0 Read 10 bytes continuously ADATA is an array Next I2cstop 250 I2c example The following example shows CB280 and EEPROM 24LC32 connected A value will be written to a specified address of the EEPROM and then read back to display on the DEBUG window of CUBLOC Studio Const Device cb280 Dim adr As Integer Dim data As Byte Dim a As Byte data amp hal adr amp h3 Set 120 3 2 Do Y Write 1 Byte 2estart f I2cwrite amp b10100000 1 Then Goto err proc a I2cwrite adr bytel a I2cwrite adr lowbyte a I2cwrite data 2cstop Delay 1000 Read 1 Byte 2estart a I2cwrite amp b b10100000 a I2cwrite adr byte1 a I2cwrite adr lowbyte 2estart a I2cwrite b10100001 a I2cread 0 2cstop Print Results Debug Hex a cr 24LC32 Delay 500 Loop TEC Debug Error Do Loop 251 MEMO 252 Chapter 9 MODBUS About MODBUS MODBUS is a protocol developed by MODICON to help interface peripherals for their PLCs It is usually used with devices like Touch screens HMI devices and SCADA software A lot of Touch screen panels HMI and SCADA software now days support MODBU
19. Variable SHIFTIN clock data mode bitlength Variable Variable to store results No String or Single Clock Clock Port 0 255 Data Data Port 0 255 Mode 0 LSB First Least Significant Bit First After Rising Edge 1 MSB First Most Significant Bit First After Rising Edge 2 LSB First Least Significant Bit First After Falling Edge 3 MSB First Most Significant Bit First After Falling Edge 4 LSB First Least Significant Bit First Before Rising Edge 5 MSB First Most Significant Bit First Before Rising Edge bitlength Length of bits 8 to 16 This command Shiftin receives shift input It uses 2 pins CLOCK and DATA to communicate SHIFTIN and SHIFTOUT command can be used to communicate with SPI MIcrowire and similar communication protocols When using EEPROM ADC or DAC that requires SPI communication this command can be used 192 After Rising After Falling Edge Edge Before Rising Edge DIM A AS Byte A SHIFTIN 3 4 0 8 jewar Sale Class Bore 4 ale Detegy Mode 0 8 bit received Shiftout SHIFTOUT clock data mode variable bitlength Clock Clock Port 0 255 Data Data Port 0 255 Mode O LSB First Least Significant Bit First 1 MSB First Most Significant Bit First 2 MSB First Most Significant Bit First Create ACK For I2C variable Variable to store data up to 65535 bitlength Bit Length 8 to 16 T
20. a Const Device cb280 Dim PLAYSTR As String Low 5 Fregout 0 5236 Create a sound with frequency of 440Hz Delay 500 Delay Pwmoff 0 Stop Sound by turning off PWM With commands like Freqout and Delay simple sounds can be created Filename playcdec cul gt Const Device CB280 Low 5 Freqout 0 4403 Delay 200 Eredgout 0 3703 Delay 200 Freqout 0 3114 Delay 200 Fregout 0 2202 Delay 200 Pwmoff 0 314 By changing frequencies we have made a simple program that can play musical notes Octave 4 Octave 5 A B C D E F G A B C D E F G A B C D E F G H I J K L M N To express one note you can use 2 characters The first character is for the note and second character is for the length of the note lt Filename play cul gt Const Device cb280 Dim PLAYSTR As String Low 5 PLAYSTR G5E3E3G3E3C5 PLAY 0 PLAYSTR Do Loop End Sub PLAY CH As Byte NOTE As String Dim PL As Byte Dim CHAR As Byte Const Integer PLAYTABLE 5236 4665 4403 3923 3495 3299 2939 2618 2333 2202 1961 1747 1649 1469 0 For PL 1 To Len NOTE Step 2 CHAR Asc Mid NOTE PL 1 amp H41 Freqout CH PLAYTABLE CHAR CHAR Asc Mid NOTE PL 1 1 amp H30 Delay CHAR 100 Next Pwmoff CH End Sub When using PWM port for other purposes Freqout command no longer becomes available for use In this case we can use any regular I O port to create sound We will use TOGGLE and
21. A 100 Eewrite 0 A 2 Store A in Address 0 B EKeread 0 2 Read from Address 0 and store in B When writing to the EEPROM it takes about 3 to 5 milliseconds When reading from the EEPROM it takes less than 0 milliseconds There is a physical limit of around 100 000 writes to the EEPROM If you are using EEPROM for data acquisition or data that requires a lot of writes we rather recommend use of the data memory with backup battery included modules such as the CB290 The following is a table showing comparisons betweens SRAM and EEPROM Type Battery Backup SRAM EEPROM Life of Data 3 Months to 1 Year 40 Years Depending on Battery Capacity Maximum Writes Infinite About 100 000 Writing Time 0 ms 3to 5 ms General use Backup Necessary Equipment Small amount of data to in the case of power outage record Example Production Line Long data life requirement Counter Example Product Serial Number 130 Ekeypad Variable EKEYPAD portblockln portblockOut Variable Variable to store results Returns Byte Portblockin Port Block to receive input 0 15 PortblockOut Port Block to output 0 15 This command EKEYPAD extends KEYPAD to read up to 64 key inputs Two Port Blocks can be used to read up to 64 key inputs Input Port Block and output Port Block must be selected separately For ports not used within the input Port Block a resistor must be connected to 5V This pin may not be u
22. Do Loop GetFreg A Count 1 Debug goxy 10 2 Debug dec5 A Countreset 1 Reverse 0 Return 117 Countreset COUNTRESET channel Channel Counter Channel 0 3 Reset the specified Counter Channel to 0 Countreset 0 Clear Channel 0 Countreset 1 Clear channel 1 118 Dcd Variable DCD source Variable Variable to store results No String or Single Source source value This command DCD is opposite of NCD command It will return the bit position starting at LSB bit 0 of the highest bit that is a 1 ies OD D Besubc ls S sine P5ostUBODDOTIIT 119 Debug DEBUG data data data to send to PC CUBLOC supports DEBUG command by allowing the user to insert DEBUG commands as he wishes during the execution of a program The results of DEBUG commands inserted in the source code is displayed on the DEBUG Terminal DIM A AS INTEGER e an Terminal lol xj E BaudRate Party DetaBls ara O Em y 115200 y None y e y en DEBUG DEC A Use DEC or HEX to display numbers Without DEC or HEX the numbers will be printed as ASCII codes Please use DEC or HEX for variables to see the actual values If you insert question mark before DEC or HEX the variable s name will be printed together e PE 12 xj DEBUG DEC A CR DaaBis gy y m DEBUG HEX CAVOR y a y lo le Hor 120 You can also use numbers to limit the number of decimal places to print DEBUG HEX8 A e Im Terminal loj xi
23. Getpad 2 Cirorefill Gb el unreal AO 4 Draw a circle where it y was touched Return 1 SET PAD 0 4 5 This command will activate the PAD inputs Syntax SET PAD mode packet size buffer size CUTOUCH has a separate touch controller that will sense touch input and send back to the CPU through SPI protocol This touch controller will create a signal that is equal to mode O MSB RISING EDGE sampling Input packets are 4 bytes each X and Y each get 2 bytes Buffer size is 5 1 more than the actual packet size 2 ON Pad Gosub ABC This command is for PAD interrupt declaration When PAD input occurs it will jump to label ABC 3 This is interrupt service routine When PAD input occurs this is part of the code until return will be executed Getpad will read the data received from touch pad 2 bytes for x position and 2 bytes for y position 4 Draw a circle where touch input was received When this program is executed you will be able to see that wherever you press on the screen a circle will appear Please use this program as a skeleton for your touch programs The following is MENU command and ON PAD command example When 280 button is pressed a beep will sound from the piezo and the button will be inversed abc DEMO FOR CUTOUCH Const Device CT1700 Dim TX1 As Integer TY1 As Integer Dim k As Long Contrast 550 Set Pad 0 4 5 On Pad Gosub abc Menuset 0 2 8 16 87 63 Menutitle 0
24. WAND si s2 d DWAND si s2 d Store result of st AND s2 WAND is for logical operation AND in WORD units whereas DWAND is for DOUBLE WORD units Relays that P M F S T D Constants may be used si O O O O s2 9 O O O D O O O START WMOV 1234H D0 1 WMO OFFH D1 1 ACTION WAND D0 D1 D2 t 1 The results of execution of LADDER above You can use AND operation when you want to use specific bits only 395 WROL DWROL WROL d DWROL d Rotate the value on relay d 1 double word to the left The value left gets stored in the Carry flag WROL moves one word whereas DWROL moves double word Relays that may P M F S C T D Constants be used BKEY WROL DO y E AE If DO has 8421H the following results Do 0843H al 396 WROR DWROR WROR d DWROR d Rotate the value on relay d 1 double word to the right The value left gets stored in the Carry flag WROL moves one word whereas DWROL moves double word Relays that P M F S E T D Constants may be used d 9 O O R d gt gt c BKEY WROR D1 AX If D1 has 8421H the following results pl D1 0C210H 397 GOTO LABEL GOTO label LABEL label The command GOTO will jump to the specified label Label is for declaring labels START GOTO SK 1 1 BEKY TON TO0 100 1 LABEL SK 1 1 When START turns ON t
25. and you will see the following screen cx CAWINDOWS WS ystem32W cmd exe c Documents and Settingsque ipconfig Mindous IP Configuration Ethernet adapter UMuare Network Adapter UMnet8 DNS Suffix Ethernet adapter UMware Network Adapter pecific DNS Suffix Connect ion IP Addre Subnet Mask Default Gateway IC Documents and SettingsWqwe gt If you will pay attention to where it says Local Area Network you will find your PC s IP Address Yes I know mine is in different language But as you can see my PC s IP address is 192 168 0 66 Now we are ready to rock baby Okay go back to the DeviceInstaller and find that XPORT you uploaded custom firmware to Iis Lantronix Devicelnstaller 3 6 0 6 File Edit View Device Tools Help Pepe 9 Search Assign IP Configure Upgrade Telet Web Type Name Group IP Address Hardware Address Status 1A 86 32 90 Online z Online S xPort 03 192 168 0 99 Im 192 168 0 6 Now select that XPORT and Click on Configure You see the following screen right 331 ES Configure Device Documentation Ports advanced T Lantronix XPort 03 1 80 Name Note information on this page is For documentation purposes and may be stored on the PC but is not stored on the device E le Please click on Ports ES Configure Device Documentation Parts Advanced Port Settings 1 9600 8 None 1 None Ed
26. gt Less than Compare Larger than Less or Equal to Larger or Equal to lt gt Same Different Compare AND XOR OR AND XOR OR Logic Lowest Please refer to the above table for checking priority of operator used In the rows the highest priority is calculated from the left to right You can use operators as conditions like below IF A 1 10 THEN GOTO ABC Whole numbers and floating point numbers can be mixed The final result follows the type of variable it will be stored in DIM F1 AS SINGLE DIM A AS LONG ES A Fl 3 14 A gets 3 even though result is 3 525456 Please make sure to include a period when using floating point numbers F1 3 0 4 0 Write 3 4 as 3 0 4 0 for floating values Fl 200 0 FLOOR A 12 0 SQR B 200 as 200 0 12 as 12 0 AND XOR OR is used for logical operations and as Bit operators P A AND BIO THEN DSL Ort Aji and Bel o Logicel Operation IP A 1 OR Bel THEN CSI gt if A ar Bel logical Operation A B AND amp HF Set the upper 4 bits to zero Bit Operation A B XOR HF Invert the lower 4 bits Bit Operation A B OR amp HF Set the lower 4 bits to 1 Bit Operation 80 Strings can be compared with the sign ASCII values are compared for Strings DIM ST1 AS STRING 12 DIM ST2 AS STRING 12 ami OME TTE ST2 CUBLOC IF STI ST2 THEN ST2 OK Y Check if ST1 is same as ST2 Operators used i
27. otherwise statements are discarded define LOWMODEL 0 ifndef LOWMODEL LOW 0 endif elseifndef and else may be used for more complex blocks like shown here ifndef LOWMODEL LOW 0 ttelseifndef HIGHMODEL HIGH 0 else LOW 1 endif Finally the directives may be mixed as shown below if MODELNO 0 LOW 0 elseifdef HIGHMODEL HIGH 0 else LOW 1 endif An exception is that if may not be used inside another if 88 To use LADDER ONLY If you do not need to use BASIC you can just program in LADDER But you will need the most basic BASIC code as shown below Const Device CB280 Select device Usepin 0 In START Declare pins to use Usepin 1 0ut RELAY Alias MO MOTORSTATE Set Aliases Alias M1 RELAY1STATE Set Ladder On Start Ladder Device model aliases and pin input and output status must be set in BASIC Ladder must be started in BASIC with SET LADDER ON command To use BASIC ONLY Simply use BASIC Ladder is off as default Y Just don t use this command And this one too Set Ladder On Ladderscan 89 Interrupt An interrupt can occur during the main program to process immediate needs of some sort ON GOSUB command can be used to set a new interrupt When that interrupt occurs the main program stops execution and jumps to the label designated by the previous ON GOSUB command Once the interrupt routine in the label is finished RETURN command is used to return back to
28. 0 3 Wmode WMODE value value O FAST 1 SLOW 427 AIC COS ideo rente see tea tarai rra 96 NS A oer tren 96 AG FAM 2 2 eaan 96 fol do 74 ASG inn 101 AN aa 36 ANREP suicidas 104 B Backup Battery 286 BASE Board 30 BASIC interpreter 29 battery backup 41 baudrate 5 ones 159 BCD2BIN s 107 418 BELR ine 108 418 BEEP oia 109 418 BFREE x 2er n 110 418 BIN2BCD 111 418 Dated EEO 75 BLEN ccoo 112 418 BM Pracosinsasiiocian 228 418 BOX iii 221 418 BOXCLEAR eee 222 418 BOXEILL ne 222 419 428 Byte initiiert Dp 69 BYTE Noia 113 419 BYTEOUT Sai 114 419 Dytes iie da 75 C oU Ec 399 CB220 1 ient eren 35 CB280 12 ipeut esten hire teh 38 CB280 relays ese 355 CB280C5 5 hlc tER 48 CB290 certet 41 CB290 relays ese 356 CheckBf 2 eee 115 419 Chipsets i cres er peine echa 48 CERE Anienem O 101 CIRCLE oes 222 419 CIRCLEFILL hunisi iip iaip 223 CLECD ite aia 204 CLCD command table 210 CLCD DIP switch 209 CLEAR naaa 215 419 Coca 208 215 419 EMODE sucia timus 221 419 COLOR n dsc 226 419 comparisons eeeee 382 COINS 2 fants imr esee testes Rice teen 77 constant arrays ss 78 Constants spisie 77 Contact Aiei eterne 357 Contact B nrar iiaei
29. 02 0 2 062317177 22 681 8 2 026937858 415 1 99192761 408 43 3 1957295352 0i 394 387 1 855745964 380 373 367 360 1 726067674 353 33 33 32 130 o 1549466822 32 31 31 30 00 lo 145764577 3o 29 29 29 28 2 0 137234968 28 NTC THERMISTOR READ TABLE y 10K DIODE TYPE Const Device cb280 Const Integer TH TABLE 992 990 989 987 985 983 981 979 977 975 973 970 968 965 963 960 957 954 951 948 945 942 938 935 931 927 923 919 915 911 907 902 898 893 888 883 878 873 868 862 857 851 845 839 833 827 821 815 808 802 795 788 781 174 767 160 753 146 738 731 123 7116 708 700 692 684 677 669 661 652 644 636 628 620 612 604 596 587 579 571 563 555 547 538 530 522 514 506 498 491 483 475 467 460 452 445 437 430 422 415 Dim a As Integer b As Integer Do b Tadin 0 IF b gt 990 Or b lt 400 Then Debug Out of Range Check short or open th End If For a 0 To 100 If b gt TH TABLE a Then Exit For Next Debug Dec a cr Delay 500 Loop lt Filename ntcth cul gt By using the TADIN command for AD conversion CUBLOC will automatically calculate the average of 10 A D conversion reads By using this command you get more precise results The sample program shown here will be able to sense between O to 100 degrees For larger range you can simply modify the code The formula for acquiring A D conversion value from the R T table is as follows V
30. 4 819233234 4 810391755 4 801193902 4 79162959 4 781688696 4 771361072 4 760636561 4 749505017 4 737956327 4 725980424 4 713567319 4 700707114 4 68739003 4 673606431 4 659346849 4 644602011 4 629362861 4 613620595 4 597366683 4 580592903 4 563291365 4 545454545 4 527075313 4 508146964 4 488663246 4 468618396 4 448007162 4 426824842 4 405067304 4 382731022 4 359813102 4 336311306 4 312224084 4 287550592 4 262290722 4 236445118 3 914475937 3 881948015 3 848917708 3 815397329 3 781399998 3 746939622 1003 1002 1000 999 998 996 995 994 992 990 989 987 985 983 981 979 977 975 973 970 968 965 963 960 957 954 951 948 945 942 938 935 931 927 923 919 915 911 907 902 898 893 888 883 878 873 868 802 795 788 781 774 767 307 308 56 57 58 59 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 239 240 241 242 243 244 245 246 247 248 249 250 2882 1 3 712030877 760 753 746 738 1220 4 2 748157207 563 1181 9 2 7084025 555 1144 8 2 668747011 547 538 l1074 5 2 589812422 530 522 1009 2 2 511506263 514 506 948 5 2 433973277 498 919 8 2395539544 491 892 0 2357349316 483 l865 3 2 319418079 475 p39 4 2 281760687 467 814 5 2244391354 460 790 4 2 207323646 452 767 1 2 170570465 445 44 7 2 134144055 a37 723 0 2 098055989 430
31. 45 i bol T E B L A1 Units INCHES MILLIMETERS Dimension Limits MIN NOM MAX MIN NOM MAX Number of Pins n 8 8 Pitch p 050 1 27 Overall Height A 053 061 069 1 35 1 55 1 75 Molded Package Thickness A2 052 056 061 1 32 1 42 1 55 Standoff 8 A1 004 007 010 0 10 0 18 0 25 Overall Width E 228 237 244 5 79 6 02 6 20 Molded Package Width El 146 154 157 3 71 3 91 3 99 Overall Length D 189 193 197 4 80 4 90 5 00 Chamfer Distance h 010 015 020 0 25 0 38 0 51 Foot Length L 019 025 030 0 48 0 62 0 76 Foot Angle 0 4 8 0 4 8 Lead Thickness c 008 009 010 0 20 0 23 0 25 Lead Width B 013 017 020 0 33 0 42 0 51 Mold Draft Angle Top a 0 12 15 0 12 15 Mold Draft Angle Bottom p 0 12 15 0 12 15 Controlling Parameter 8 Significant Characteristic Notes Dimensions D and E1 do not include mold flash or protrusions Mold flash or protrusions shall not exceed 010 0 254mm per side JEDEC Equivalent MS 012 Drawing No C04 057 417 Appendix G CUBLOC BASIC Command summary Comman Usage d Adin Variable ADIN Channel Variable Variable to store results No String or Single Channel AD Channel Number not I O Pin Number Alias ALIAS Relayname AliasName Relayname Relay name such as PO MO TO Do not use D area AliasName An Alias for the Relay chosen up to 32
32. ADO P24 P32 P9 AD1 P25 P33 P10 AD2 P26 P34 P11 AD3 P27 P35 P12 AD4 P28 49 69 P36 P13 AD5 P29 500 670 P37 P14 AD6 P30 P38 P15 AD7 E io P31 P39 P64 29 355 P40 P48 P65 gmoolc P41 P49 P66 0 Q cO I co Oo N CO Sf OONN P42 P50 P67 f eoooooneeooon P43 P51 P68 KAM TNOROROraMY P44 P52 P69 0 c 00 00000000 O 0 0 D O P45 P53 P70 eee e ee P46 P54 P63 2006 40 P71 e eoo e P47 P55 AD XD r OO C O QN CO 10 CO o oooooooOooooooo v O C cO XD P 00 Oo CONAN o TN ie EE 59 n n Ir Warranty Comfile Technology provides 1 Year warranty on its products against defects in materials and workmanship If you discover a defect Comfile Technology will at its option repair replace or refund the purchase price Simply return the product with a description of the problem and a copy of your invoice if you do not have your invoice please include your name and telephone number This warranty does not apply if the product has been modified or damaged by accident abuse or misuse 14 Day Money Back Guarantee If within 14 days of having received your product you find that it does not suit your needs you may return it for a refund Comfile Technology will refund the purchase price of the product excluding shipping handling costs This does not apply if the product has been altered or damaged Copyright amp Trademarks Copyright 2005 by Comfile Technology Inc All rights reserved CUBLOC is a trademark o
33. Baud Rate Data Bits e zm 115200 y fe y xs a 1 through 8 can be used with HEX HEXS8 will print as 8 digit hexadecimal number 1 through 10 can be used with DEC You are free to mix strings numbers and etc DEBUG CHECK VALUE HEX A CR mixi Baud Rate Data Bits n tl EZ gt 115200 sa fe y RX CHECK VALUE A 7B DEBUG command is useful for printing out strings and numbers in a user friendly format During execution of CUBLOC BASIC program when DEBUG command is encountered the resulting values are displayed on the DEBUG Terminal 121 If you insert a DEBUG command to a certain part of the program and the DEBUG Terminal displays the values during execution it proves that the program has executed to that point By using these DEBUG commands you will be able to find bugs in your program and monitor variables change in real time If you enter character in the white part of the Debug Terminal it will be sent to the DOWNLOAD port of CUBLOC We have added this feature for future advanced development Warning DEBUG command may not be used while monitoring in Ladder Logic Likewise Ladder Logic monitoring can not be used while debugging using DEBUG commands The following is a chart of commands that can be used with the DEBUG command You can control the DEBUG screen just like a real LCD Command Code Explanation Example Usage CLR 0 Clear
34. Loop Loop GOTDATA A Getstr 1 8 Debug A Return CB280 TTLRX TTLTX 136 Geta GETA channel ArrayName bytelength channel RS232 Channel 0 3 ArrayName Array to store Received data No String or Single Bytelength Number of Bytes to store 1 65535 The command Geta can be used to store received RS232 data into a Byte array Data will be stored starting from the first element of the array Again please check the receive buffer with BLEN before reading to avoid reading garbage data Const Device cb280 Dim A 10 As Byte Opencom 1 115200 3 50 10 Set Until 1 8 On Recvl Gosub GOTDATA Do Do While In 0 0 Loop Wait until press button Connect P0 Putste A CUBLOE Cr Do While In 0 1 Loop Loop GOTDATA Geta 1 A 8 Debug A 0 A 1 A 2 A 3 A 4 A 5 A 6 A 7 Return CB280 TTLRX TTLTX 9 137 Gosub Return GOSUB command can call a sub routine RETURN command must be used at the end of the sub routine GOSUB ADD VALUE ADD VALUE A A 1 RETURN Goto GOTO command will instruct the current Program to jump to specified label This is part of every BASIC language but we do not recommend the use of GOTO as it can interfere with structural programming If I 2 Then Goto LAB1 moro Ihr LAB I 3 About Label A Label can be set with character to set a point for GOTO or GOSUB to jump to ADD VALUE LINKPOINT A label cannot use reserved constant
35. NOTE 3 Temperature Sensor In our world today there are countless number of devices that senses temperature Refrigerator heater air conditioner automobiles and many other devices that uses temperature sensors Therefore this is one of the very basic components we must know What types of temperature sensors are there There is PT100 NTC PTC thermistor and other chip type sensors such as the DS1620 Today we will dive into the NTC thermistor and figure out how to connect and use it with CUBLOC The NTC thermistor can be comparable to a very sensitive resistor Depending on the temperature the value of resistance will change By reading the value of this resistance we can figure out the current temperature Among NTC thermistors the ceramic types can sense around 20 to 130 degrees Celcius temperature There is an NTC thermistor that resembles a diode With this thermistor we can sense between 30 and 250 degrees Celcius temperature 4D You can acquire R T Resistance Temperature conversion table from the maker of the thermistor The following is a diode type 10K Ohm NTC Thermistor R T conversion chart and table Temperature Minimum Average Maximum 0 31260 0 32610 0 33987 7 1 29725 7 30993 7 32286 7 2 28275 6 29466 8 30680 6 3 26904 5 28023 9 29163 6 4 25607 8 26660 0 27730 3 5 24381 0 25370 2 26375 7 6 23220 0 24150 1 25094 9 7 22120 9 22995 7 23883 7 8 210
36. and detailed information To use XPORT you will need to get XPORT Devicelnstaller to set the XPORT for the first time 310 S Lantronix Devicelnstaller 3 6 0 6 File Edit View Device Tools Help Type Name Group TP Address Hardware Address Status When Search button is pressed XPORTs connected to your network will show up Please record the IP address E Port Properties DER Port Settings Advanced Baud Rate 115200 Data bits 8 Parity Stop bits Flow control After selecting the XPORT to configure please click on Port gt Setup and setup the parameters as shown above After setting up the XPORT you can install a Java applet to the XPORT to enable monitoring and downloading through the internet Please go to Run and type cmd to go to DOS command line as shown below z218 80H 7A E2 PEA 0715 311 Please type as shown below make IP address WWINDOWSWSystem32Wcmd exe ght 1985 2001 M ts and Settingsttque cdtmax Himax gt dir 1 26 PUT c cob 88568 bytes in The IP address here is the IP address you have recorded earlier with the DevicelInstaller Please make sure you have java software installed on your computer by going to www java com And now for the final part simply type the IP address on the Internet Explorer Please click Yes on the certificate window OBJ Filename urreniF e Connected t
37. f2 Eeread 0 4 DebugaElostet2ncm When you run this code the debug window will show 3 00000 instead of 3 14 The reason is that EEWRITE command automatically converts floating point values to whole numbers In order to store floating point values we can use Peek and Poke to read the data directly The following is how we would accomplish that Const Device CB280 Dim F1 As Single F2 As Single F1 3 14 Eewrite 10 Peek Memadr F1 4 4 Poke Memadr F2 Eeread 10 4 4 Debug Float F2 CR The Debug Window will now show 3 14 We use Memadr F1 to find the memory address of Fi and then use Peek command to directly access the memory and write 4 bytes We store that value in EEPOM Conversely we use Memadr F2 and Poke to read 4 bytes directly Warning Please use caution when using this command as pointers can affect the whole program Peek and Poke may only access data memory SRAM 91 Sharing Data CUBLOC has individual BASIC and LADDER data memory BASIC DATA MEMORY LADDER DATA MEMORY Variable Variable MT Variable Variable cL Variable LADDER data memory can be accessed from BASIC easily by using system variables By using these system variables data can easily be read or written from and to LADDER System Variable Access Units LADDER Relay Array P Bits _P 0 P 127 P Relay M Bits _P 0 P 511 M Relay _WP Words _WP 0 WP 7 P Relay Word Access _WM Word
38. seseeseeeettnnneee 0 3 to VDD 0 3V Total power dissipation Maximum current out of Vss pin Maximum current into VDD pin Input clamp current lik Vi lt 0 or Vi gt VDD Output clamp current IOK Vo lt 0 or Vo VDD sss tente tetti tnnt te snesu a aaa annn a a te 20mA Maximum output current sunk by any MO pin scserscensessesoserenerseenseseesenssnssoncnsenererssssunsnssrseenorssonamnensrseeneene 2D M Maximum output current sourced by any I O pin 25 mA Maximum current sunk by all GPIO 125 mA Maximum current sourced all GPIO 125 mA Note 1 Power dissipation is calculated as follows PDIS VDD x IDD loH X VOD VOH x 10H X Vol x IOL 1 NOTICE Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device This is a stress rating only and functional operation of the device at those or any other conditions above those indicated in the operation listings of this specification is not implied Exposure to maximum rating conditions for extended periods may affect device reliability Note Voltage spikes below Vss atthe MCLR pin inducing currents greater than 80 mA may cause latchup Thus a series resistor of 50 100 Q should be used when applying a low level to the MCLR pin rather than pulling this pin directly to Vss 416 Sub chip packaging information E 3 65 de
39. 0x81 0x40 0x01 OxCO 0x80 Ox41 _ 0x00 OxCl 0x81 0x40 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x00 OxCl Ox81 _ 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x00 OxCl Ox81 0x40 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 Ox01 _ OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 Ox41 _ 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 OxCl Ox81 0x40 Const Byte auchCRCLo _ 0x00 OxCO OxCl 0x01 OxC3 0x03 0x02 OxC2 OxC6 0x06 0x07 OxC7 0x05 OxC5 OxC4 _ 0x04 OxCC OxOC OxOD OxCD OxOF OxCF OxCE Ox0E OxOA OxCA OxCB OxOB OxC9 Ox09 _ 0x08 OxC8 OxD8 0x18 0x19 OxD9 0x1B OxDB OxDA Ox1A OxlE OxDE OxDF OxlF OxDD Ox1D OxlC OxDC 0x14 OxD4 OxD5 0x15 OxD7 0x17 0x16 OxD6 OxD2 0x12 0x13 OxD3 0x11 OxDl OxDO 0x10 OxFO 0x30 Ox31 OxFl 0x33 OxF3 OxF2 0x32 0x36 OxF6 OxF7 0x37 OxF5 0x35 0x34 OxF4 Ox3C OxFC OxFD Ox3D OxFF Ox3F Ox3E OxFE OxFA Ox3A _ 0x3B OxFB 0x39 OxF9 OxF8 0x38 0x28 OxE8 OxE9 0x29 OxEB 0x2B Ox2A OxEA OxEE _ Ox2E 0x2F OxEF 0x2D OxED OxEC Ox2C OxE4 0x24 0x25 OxE5 0x27 OxE7 OxE6 Ox26 _ 0x22 OxE2 OxE3 0x23 OxEl 0x21 0x20 OxEO OxA0 0x60 0x61 OxAl 0x63 OxA3 OxA2 0x62 0x66 OxA6 0xA7 0x67 OxA5 0x65 0x64 OxA4 Ox6C OxAC OxAD Ox6D OxAF Ox6F Ox6E OxAE OxAA Ox6A Ox6B OxAB 0x69 OxA9
40. 120 Print FONT 0 ABCDEFGHIJKLMN o ct N locate 10 140 Print FONT 2 ABCDEFGHIJKLMN Print FONT 6 ABCDEFGHIJ Ont 8r locate 10 185 04005310050053005500500530045 219 SNS ESO b Style STYLE bold inverse underline bold O Normal 2 or 3 Bold inverse O Normal 1 Inverse underline 0 Normal 1 Underline You can use STYLE command to add Bold Jo Inverse or Underline to your fonts MAX MAX 220 BOLD INVERSE UNDERLINE Cmode CMODE value value O BOX type 1 Underline type Choose the type of cursor to use Default BI 0 BOXType is the Underline type 1 UnderLine Type Line LINE x1 y1 x2 y2 Draw a line from x1 y1 to x2 y2 a LINE 10 20 100 120 Draw line Lineto LINETO x y Draw line from the last point to x y LINETO 200 50 Continue drawing line from the last point Box BOX x1 y1 x2 y2 Draw a box with diagonal positions of X1 Y1 and X2 Y2 BOX 10 20 200 100 Draw box 221 Boxclear BOXCLEAR x1 y1 x2 y2 Clear the box with diagonal positions of X1 Y1 and X2 Y2 BOXCLEAR 10 20 200 100 Clear box D Boxfill BOXFILL x1 y1 x2 y2 logic logic O OR 1 AND 2 XOR Draw a box with diagonal positions of X1 Y1 and X2 Y2 and fill according to specified logic 0 OR will display all overlapped areas 1 AND will display only the overlapped areas 2 XOR will display the overlapped
41. 28 e 29 30 031 32 VDD vss RES NIC P16 P17 P18 P19 P20 INTO P21 INT1 P22 4 INT2 P23 4 NT3 P15 P14 P13 P12 Set external interrupt to TXi RX1 AVDD NIC P24 P25 P26 P27 P47 P46 P45 P44 P43 P42 P41 P40 be on the Falling Edge 330 340 350 360 370 380 30 40 4e 120 130 10 150 160 170 480 O 49 e 50 e5 52 53 4 55 e 56 es e 53 e 59 60 e 62 63 eo TTLTX1 TTLRX1 AVREF P48 P31 P30 P29 P28 P32 P33 P34 P35 P36 P37 P38 P39 185 Set Onglobal SET ONGLOBAL On Off At power On Set Onglobal is ON by default This command turns on or off the ability to receive ALL interrupts When Onglobal is turned Off and turned On all interrupt settings set before turning Off will be in effect SET ONGLOBAL OFF Turn ALL interrupts OFF If you don t use any interrupts you can turn off all interrupts to increase the execution speed of CUBLOC 186 Set Onint SET ONINTx On Off At power On Set Onint is ON by default This command turns On or Off the ability to receive individual external interrupts using global flags The names of these flags correspond to the interrupt number supported by the device For example ONINT1 is used for Interrupt 1 When the ONINTx global is set to ON for a specific interrupt then an interrupt can be received using the ON INTx command If the global is set to OFF then the code for
42. 423 ON TIMER ese 158 423 OnsChipzzu a iin 23 OPENCOM e 159 424 operators ee 80 jo toas PROPER ERE 370 QUT pp 161 424 OUTPUT iiir ii 162 424 OUTSTAT iR 163 424 OVERLAY iie 217 424 P PAINT i nini 227 424 PAUSE acaso aapi 163 424 Peek oe seciacevnegentevevkig evaceesia ces 91 PEEK oc caca 164 424 PLC Setup Wizard 352 PLC Micro computer 24 Poker 91 PORKE sess ete tos 164 424 power regulator 37 PRINT iere iue 208 216 424 proto boards ssec 30 PSET i iere 226 424 PULSOUT eese 165 424 PUT aci 166 424 PUTA iria 168 425 PUTSTR etiidi ipai iieii 167 425 PWM Tina eias 169 425 PWMOFF eene 170 425 R RAMCLEAR 73 171 425 RC Servo motor 319 Real Time Clock 322 re flashed ees 359 Relay Expression 355 Relay numbers 360 representation of numbers 83 RET niente RET Rit EU RES 399 RETURN irepl 138 REVERSE ss 172 425 A ees cezves 99 RAND 173 RSTOU TN irrite tiaa Eiai 371 RTU een 264 266 S SBRT piresi dn 399 Select Case cene 174 SET DEBUG 175 425 SET DISPLAY 205 425 SBI I2C i iiiter 176 425 SET INTX eene 185 426 SET LADDER On 177 425 Set Modbus 178 425 SET ONGLOBAL 186 426
43. 65535 can be used On Timer can be used to execute a interrupt routine at every specified interval Set the desired interval in milliseconds and a label to jump to when interrupt occurs 158 On TIMER 100 Gosub TIMERTN Dim I As Integer I 0 Do Loop TIMERTN Iner p I is incremented 1 every second Return IMPORTANT Please pay caution when creating the interrupt routine It must be less than the interval itself If interval is set at 10ms the interrupt routine from the label to its return must be within 10 ms About 360 instructions lines Otherwise collisions can occur within the program Opencom OPENCOM channel baudrate protocol recvsize sendsize channel RS232 Channel 0 3 Bauarate Baudrate Do not use variable protocol Protocol Do not use variable recvsize Receive Buffer Size Max 1024 Do not use variable sendsize Send Buffer Size Max 1024 Do not use variable To use RS232 communication this command Opencom must be declared beforehand CUBLOC has 2 channels for RS232C communication Channel O is used for Monitor Download but the user can use it for RS232 communication if she he wishes to forego monitoring Download will still work fine regardless The following are allowed baudrate settings for CUBLOC RS232 2400 4800 9600 14400 19200 28800 38400 57600 76800 115200 230400 For the protocol parameter please refer to the table below Parity Stop Bit Bit of
44. 9 1 0 P5 10 I O PWM Channel 0 P6 11 I O PWM Channel 1 P7 12 I O PWM Channel 2 P8 13 1 0 CuNET SCL P9 14 I O CuNET SDA P10 15 I O P11 16 1 0 Block 1 P12 32 I O P13 31 I O P14 30 I O High Count Channel 0 P15 29 I O High Count Channel 0 P16 21 1 0 P17 22 T O P18 23 1 0 P19 24 1 0 Block 2 PWM Channel 3 P20 25 I O PWM Channel 4 INT Channel 0 P21 26 I O PWM Channel 5 INT Channel 1 P22 27 I O INT Channel 2 P23 28 I O INT Channel 3 38 P24 37 I O ADCO AD Channel 0 P25 38 I O ADC1 AD Channel 1 P26 39 I O ADC2 AD Channel 2 P27 40 1 0 Block 3 ADC3 AD Channel 3 P28 56 I O ADCA AD Channel 4 P29 55 I O ADC5 AD Channel 5 P30 54 I O ADC6 AD Channel 6 P31 53 I O ADC7 AD Channel 7 P32 57 I O P33 58 I O P34 59 I O P35 60 1 0 Block 4 P36 61 I O P37 62 I O P38 63 I O P39 64 I O P40 48 I O P41 47 I O P42 46 I O P43 45 1 0 Block 5 P44 44 I O P45 43 I O P46 42 I O P47 41 I O P48 52 I O VDD 17 IN Power 4 5V 5 5V VSS 18 IN GROUND RES 19 IN RESET Input LOW signal resets Normally HIGH or OPEN TX1 33 RS232 Channel 1 12V Data Output RX1 34 RS232 Channel 1 12V Data Input AVDD 35 ADC Power TTLTX1 49 RS232 Channel 1 5V TTL level Data Output TTLRX1 50 RS232 Channel 1 5V TTL level D
45. Bits 0 0 NONE 0 1 Stop 0 0 5 bit Bit 0 1 Reserve 1 2 Stop 0 1 6 bit Bits 1 0 Even 1 0 7 bit 1 1 Odd 1 1 8 bit The below table shows typical settings based on the previous table Bits Parity Stop Bit Value to Use 8 NONE 1 3 8 EVEN 1 19 Hex 13 8 ODD 1 27 Hex 1B 7 NONE 1 2 7 EVEN 1 18 Hex 12 7 ODD 1 26 Hex 1A OPENCOM 1 19200 3 30 20 Set to 8 N 1 159 The user can set the send and receive buffer size The send and receiver buffers take up space in the data memory Although you can set each buffer up to 1024 bytes it will take up that much of the data memory The number of variables you use may decrease We recommend receive buffer size from 30 to 100 and send buffer size from 30 to 50 For CB220 module port 1 and 2 can be used for Channel 0 Port 10 and 11 can be used for RS232C Channel 1 CHANNEL O TX sour d1 Y_ 240 vin RX sIN H2 23H vss ATN 13 22H RES vss 04 21H vob po Hs 20H P15 P1 je 19D P14 P2 H7 180 P13 P3 He 17h pig CHANNEL 1 P4 Ho 160 P11 TX P5 E 10 15 E P10 4 RX Pe 01 mew 140 Po P7 012 1310 P8 For the CB280 module there are dedicated RS232 ports For Channel 1 there are 2 types of outputs 12V and TTL 5 0V Please make sure to use only one of them at one time 12V 12V 12V 12V 1X1 33 49 RX 34 50 AVDD 356 e 5
46. Carriage Return Next Line Print California CR Print California and go to the next line Merge Multiple Strings To merge multiple strings together use amp as shown below Init dl Ast GEER 5 910 Dim a2 As String 30 al Comfile a2 Technology Gull Sel te a se da Debug al cr The above program will show Comfile Technology Inc on the debug screen 7i How to Access Individual Characters within a String You can use strings like an array Simply append _A after the name of your string variable like shown here DIM ST1 AS STRING 12 SIM TO ST1_A 0 ASC A Store A in the first character of ST1 STI A Array Ls created atthe same time When you declare Dim Sti as String 12 Sti_A 12 is also declared automatically by the RTOS The string and the array use the same memory space Whether you use the string or the array you are still accessing same memory location The example below shows how to convert blank characters to z Const Device CB280 Dim a as integer Dit si AS S EXHI EO sic NU MO tia ae iy MEUS Print ster For a 0 To 10 We sic Atan ASEENA amem ser atay Aso zr End If Next Erie Sie With string arrays you may not use this feature Di exe HAO AS Sieiasfarey c 9 72 About Variable Memory Space In the case of CB220 and CB280 2KB 2048 bytes of data memory is available You may not use the whole data memory for variables Part of the
47. Debug screen Debug CLR HOME 1 Move cursor to the upper left corner of Debug HOME the Debug screen GOXY 2 Move cursor to X Y Debug GOXY 4 3 CSLE 3 Move cursor one to the left CSRI 4 Move cursor one to the right CSUP 5 Move cursor one up CSDN 6 Move cursor one down BELL 7 Make beeping sound BKSP 8 BACK SPACE LF 10 LINE FEED Debug ABC LF CLRRI 11 Erase all characters on the right of cursor to the end of line CLRDN 12 Erase all characters on the bottom of cursor CR 13 10 Carriage Return go to next line Debug ABC CR You must use above commands in line with the DEBUG command Debug Goxy 5 5 Dec I Debug Clr TEST PROGRAM 122 Decr DECR variable Variable Variable for decrementing No String or Single Decrement the variable by 1 similar to A in C language Decr A Decrement A by 1 123 Delay DELAY time Time interval variable or constant Delay for the specified time in milliseconds Delay should be only used for slight delays in getting something to work We recommend not using it for time measurements and time specific applications Delay 10 Delay about 10 ms Delay 200 Delay about 200 ms Delay is pre made system s sub program sub delay dl as long dll var long dl2 var integer for dll1 0 to dl for dl12 0 to 1 nop nop nop next next end sub 124 Do Loop DO LOOP will loop the commands within itself unless DO WHILE or DO UNTIL is used to set a condition in
48. Dee Den 178 SEDO Y rola E iR USE DENM UE 179 Seb Pad riadas meu 180 SEU 9p EE 183 Set Until E eee icri Oe ee 184 Set lr A cee eta td 185 Set Onglobal EA AE 186 Set Oninta ii Tees AAA A ur rotat Dee Qul 187 Set OnLadderiht ascii a 188 SECOND ener 189 SON io 190 Set ONMEDA eaaa i a 191 SHIRA ED A EE E E E E E T 192 Shitoub zerade an ta TREE 193 SSA Ra 194 TAI tn ol ie EID r 195 TIM a A A vad A eve wae ps dad 196 TM A 197 Ud Visions A A at 199 US CPI da rese mcer doc Vos EX EFE Su ERG Y DUET E UR 200 DM Dic e ieee sews eer eed ease hera QR wea do w Da Du MY Ki X re a bales 201 WAlET ep REPE 202 CHAPTER 7 CUBLOC DISPLAY LIBRARY cscssccssssscsssssccsssssccssssecssseccsssseecsnsecesesee 203 Set Displays cene Ui 205 gr M Ed 208 CSEOLD A eui Ri eer deos Tere bu Cr ERE ep TET 208 IGI ARTE 208 lLeez cip e PERPE 208 Printi seisuse M 208 CRKED Module caia A ead latencies tates 209 GHLCD Graphic LCD GHB3224 Series ooccocccnccncnnnnnncnnnconcnnanancnnons 212 A 215 CICA otis dices cde RU Pu EN 215 10 cuu 215 LOCALC Me EE 215 Pritit incerto tds 216 LAV E AA ERE A E EN AEN cud 216 GAY Or i eme ncehudueneuenouteiu innen 217 OWN Vae ee vas dana sev dans 217 A sented ate cethi sa ecavedeh oss evciaties teutacvsanedeledeuthaoes Tiss 217 die ipn 218 lnc EE 218 FORE a eme edite tc ota eise tete edet ones 219 Style eeepc cec pe e Rie repe A Ip ais 220 COCO
49. F3 F4 F5 F6 F7 F8 1 SCAN On every 10ms F9 1 SCAN On every 100ms F10 F11 F12 F13 F14 F15 F16 Repeat ON OFF every 1 Scan time F17 Repeat ON OFF every 2 Scan times F18 Repeat ON OFF every 4 Scan times F19 Repeat ON OFF every 8 Scan times F20 Repeat ON OFF every 16 Scan times F21 Repeat ON OFF every 32 Scan times F22 Repeat ON OFF every 64 Scan times F23 Repeat ON OFF every 128 Scan times F24 Repeat ON OFF every 10ms F25 Repeat ON OFF every 20ms F26 Repeat ON OFF every 40ms F27 Repeat ON OFF every 80ms F28 Repeat ON OFF every 160ms F29 Repeat ON OFF every 320ms F30 Repeat ON OFF every 640ms F31 Repeat ON OFF every 1 28 seconds F32 Repeat ON OFF every 5 12 seconds F33 Repeat ON OFF every 10 24 seconds F34 Repeat ON OFF every 20 48 seconds F35 Repeat ON OFF every 40 96 seconds F36 Repeat ON OFF every 81 92 seconds F37 Repeat ON OFF every 163 84 seconds F38 Repeat ON OFF every 327 68 seconds F39 Repeat ON OFF every 655 36 seconds F40 Call LADDERINT in BASIC F41 F42 401 If you write 1 to F40 you can create a LADDERINT in BASIC Please refer to ON LADDERINT GOSUB command for details F2 causes 1 Scan ON at the time of BASIC s SET LADDER ON command Blank special relays are reserved Please do not use them 402 APPENDIX Appendix A ASCII CODE DEL o A o d o e OF c x c
50. GPOP and GPASTE except that the columns can only be multiple of 8 as shown below The 320 pixels have been divided by 8 there are only 40 columns each 8 pixels wide 1 222 1 123 AN an 11111111112 012345678901234567890 239 HPUSH 6 20 12 100 2 Hpop HPOP x y layer Same as GPOP except x value is O to 39 HPOP 10 20 2 0 Hpaste Hpaste x y layer Same as GPASTE except x is between 0 and 39 231 GHB3224C DIP Switch Settings On the back of the GHB3224B there are DIP switches to set the RS232 baud rate and I2Cslave address used DIP Switch RS232 Baud Rate I2C Slave Address 123 ON mum 2400 0 123 ON il mm 4800 1 123 oN BN mm 9600 2 123 on EE 19200 3 123 ON E nn 28800 4 123 ON E m 38400 5 123 ON E NI 57600 6 123 ON E B 115200 7 Please choose one communication method to use at a single time CuNET or RS232 232 GHB3224 DIP Switch number 4 is not Either Seven Segment Display CSG Series The seven segment display can be used to display numbers 8 LEDs are used for most seven segment displays as shown below To incorporate a seven segment display into products in the past people had to create a dynamic display method that is very complicated for the average user To simplify the matter we have developed an easy to use seven segment display called the CSG module Li m In I 71 EJ EJ CJ G
51. Loop 334 Simply select a file using the File Open E CuMAX Server 1 3 0 q Select an object file Please choose a file Es ARM QUEM sz ck Be Qu 38 SU se ui z2 ZN ilelib a My eBooks My Skype Pictures HSan LH EY F Ed csgntest004 obj y tj fuzzypermvi12 obj WW SA Es ACOO2 obj ga E Smartkeypadv00 obj WW ass WHEN era Te O18 imer obj gt 2710 Te e D SEIS zi Ha Select the CUBLOC CUTOUCH you want to download to Searching lo 12345 IP 192 168 0 6 Port 59001 No 10001 IP 192 168 0 99 Port 59001 4 Press the run key 5 If you get a message like below you have successfully downloaded to your CUBLOC or CUTOUCH Download Finished and Resetted Checksum OK Note Anytime during the download you can press the im download The m downloading or monitoring stop key to halt stop key can also be used to reset your CUBLOC module when not 335 How to Download a the Firmware Select the CUBLOC CUTOUCH you want to load a new firmware No 12345 IP 192 168 0 6 Port 59001 No 10001 IP 192 168 0 99 Port 59001 Click on the firmware Download button You will be able to see the status of the firmware download like below Firmware Download Finished so How to Monitor Select the CUBLOC CUTOUCH you want to monitor No 12345 IP 192 168 0 6 Port 59001 No 10001 IP
52. P48 73 Output P49 74 Output P50 75 Output P51 76 Output Block 6 P52 77 Output P53 78 Output P54 79 Output P55 80 Output P56 13 Input P57 14 Input P58 15 Input P59 16 Input Block 7 P60 17 Input P61 18 Input P62 19 Input P63 20 Input P64 33 Input P65 34 Input P66 35 Input P67 36 Input Block 8 P68 37 Input P69 38 Input P70 39 Input P71 40 Input 42 P72 87 Input P73 88 Input P74 89 Input P75 90 Input Block 9 P76 101 Input P77 102 Input P78 103 Input P79 104 Input P80 91 Input P81 92 Input P82 93 Input P83 94 Input Block 10 P84 105 Input P85 106 Input P86 107 Input P87 108 Input P88 81 N C N C Do not use this I O number P89 82 I O PWM Channel 3 P90 95 IO Block 11 PWM Channel 4 INT Channel O P91 96 I O PWM Channel 5 INT Channel 1 VDD 21 44 IN Power 4 5V 5 5V VSS 22 64 IN GROUND RES 23 IN RESET Input LOW signal resets Normally HIGH or OPEN VBB 24 IN Battery Backup TX1 41 RS232 Channel 1 12V Data Output RX1 42 RS232 Channel 1 12V Data Input AVDD 43 ADC Power TTLTX1 61 RS232 Channel 1 5V TTL level Data Output TTLRX1 62 RS232 Channel 1 5V TTL level Data Input AVREF 63 ADC Reference Voltage The CB290 output only pins P24 P55 are in high impedance state High Z at power ON
53. P87 CONS CONTS CON7 CONS ER 8Y2P0L HEADER 02000 HEADER BE2POE JA Pg Pi Pag pan Pea pga pag PS8 P17 P17 Pat is Bi Pat P65 is E Pes PBS B P89 PIB PIB P42 3492 P4 P66 o o P66 P930 3 9 P90 Lal P19 Pay ao gt iD P43 PB 9c iD R67 Pat of PST n u FE Rs s ofe Pas PBS gt oft Pes p22 EF P32 PAR us o Pag eR Hu P7 P23 P23 P47 PaT P71 P71 CB290 Proto Board Circuit Schematics continued 1 410 CB290 Proto Board Circuit Schematics continued 2 P87 LEO2 a PBG LED4 qe Paal E 45V 45V a a sw2 Ur JE P72 SM TACT 5w3 1 2 P73 SM_TACT Sa ir P74 P75 P75 SM_TACT SW7 ir P7 SW TACT Swe ue P7B SM_TACT swg ij P79 SM_TACT SM_TACT PB4 Pal LEDS 4H P43 DP LEDS 44 pas E LEO sx Ps5 E pi LEOB a pasl pl LEDS qe P55 P54 P53 P52 P51 P50 P49 P4g LED wr 5 n p K LEDIG w D A b Kk LEDS qn L A p Kk LED qe e peo LED a4 LEDIZ ww LEON qe LEO ww A pl D ip D p D ip 411 CB290 Proto Board Circuit Schematics continued 3 12V LEVEL SOU
54. Set display decimal places to 10 If A is 1234 bbbbb1234 will be displayed b stands for blank Spaces DEBUG DP A 10 1 If A is 1234 0000001234 will be displayed HP Variable Decimal Places ZeroPrint This command HP converts Variable into hexadecimal String representation If ZeroPrint is set to 1 zeroes are substituted for blank spaces DEBUG HP A 4 0 Convert A into HEX String representation Set display decimal places to 4 If A is ABC bABC will be displayed b stand for blank spaces DEBUG HP A 4 1 If A is ABC OABC will be displayed LEFT Variable Decimal Places Cut specified decimal places of the String from the left side and return the value DIM ST1 AS STRING 12 STI CUBLOC DEBUG LEFT ST1 4 CUBL is printed RIGHT Variable Decimal Places Cut specified decimal places of the String from the right side and return the value DIM ST1 AS STRING 12 ST1 CUBLOC DEBUG RIGHT ST1 4 BLOC is printed 99 MID Variable Location Decimal Places Cut specified decimal places starting from the Location specified and return the value DIM ST1 AS STRING 12 STi CUBLOC DEBUG MID ST1 2 4 UBLO is printed LEN Variable Return the length of the String specified DIM ST1 AS STRING 12 sT1 CUBLOC DEBUG DEC LEN ST1 6 is printed since there are 6 characters in ST1 STRING ASCII code length Create a specified length String with specified ASCII code
55. Start Address HI 0X70 0i 2 Start Address LO 0X01 70 2 Length HI 0X12 12 2 Length LO 0X34 34 2 Error Check LRC 2 Ending Code CR LF 2 Response Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code 0X06 06 2 Start Address HI 0X70 0i 2 Start Address LO 0X01 70 2 Length HI 0X12 12 2 Length LO 0X34 34 2 Error Check LRC 2 Ending Code CR LF 2 260 Function Code 15 Multiple Bit Write PLC s can remotely control the status of its relays in units of multiple bits through this function code The following is an example showing Slave Address 3 s P20 through P30 being turned ON OFF Que Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code OXOF OF 2 Start Address HI 0X00 00 2 Start Address LO 0X14 14 2 Length HI 0X00 00 2 Length LO OXOB OB 2 Byte Count 0X02 02 2 Data 1 OXD1 D1 2 Data 2 0X05 05 2 Error Check LRC 2 Ending Code CR LF 2 Below table shows how the DATA in the above query is divided P27 is placed in the MSB of the first Byte send and P20 is placed in the LSB of the first Byte There will be total of 2 bytes sent in this manner Left over bits can be set to zero Bit 1 1 0 1 0 0 0 1 0 0 0 0 0 1 0 H Rea P27 P26 P25 P24 P23 P22 P21 P20 P30 P29 P28 y Response Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code OXOF OF 2 Start Address HI 0X00 00 2 Start A
56. V i input Leakage Vec 5 5V pin low 10 yA urrent I O Pin absolute value li Input Leakage Vcc 5 5V pin high 10 uA Current I O Pin absolute value Rast Reset Pull up Resistor 30 60 kQ Rpen PEN Pull up Resistor 30 60 kQ Rey 1 0 Pin Pull up Resistor 20 50 ka 414 Main chip packaging information PIN 1 PIN 1 IDENTIFIER sel c El E z e D1 D al Notes 1 This package conforms to JEDEC reference MS 026 Variation AEB 2 Dimensions D1 and E1 do not include mold protrusion Allowable protrusion is 0 25 mm per side Dimensions D1 and E1 are maximum plastic body size dimensions including mold mismatch 3 Lead coplanarity is 0 10 mm maximum c 7 BRE SIM a A2 La COMMON DIMENSIONS Unit of Measure mm SYMBOL MIN NOM MAX NOTE A 1 20 A1 0 05 0 15 A2 0 95 1 00 1 05 D 15 75 16 00 16 25 D1 13 90 14 00 14 10 Note 2 E 15 75 16 00 16 25 E1 13 90 14 00 14 10 Note 2 B 0 30 0 45 c 0 09 0 20 L 0 45 0 75 e 0 80 TYP 415 Sub chip electrical Characteristics 12 0 ELECTRICAL SPECIFICATIONS Absolute Maximum Ratingst Ambient temperature LON DIAS erecti nice repo tai thv recor eer aegra popa 40 to 125 C OE NAAA O to 150 C Voltage on VDD with respect to VSS 0 3 to 6 5V Voltage on MCLR with respect to Vss 0 3 to 13 5V Voltage on all other pins with respect to VSS
57. You can use Set Outonly On to set them all to output states Set Outonly On This command only works with CB290 rev B The revision number is written on the bottom side of the CB290 module A fake port 88 was made to make the Set OUTOnly command which is same as LOW 88 Therefore when using the CB290 Rev B you may not use port 88 P88 for other purposes Please do not use USEPIN 88 when using with LADDER 43 44 Vdd TX1 4106061 TtUTX1 Vss RX1 TtIRX1 RES AVdd AVref VBB Vdd Vss P8 ADO P24 P32 P9 AD1 P25 P33 P10 AD2 P26 P34 P11 AD3 P27 P35 P12 AD4 P28 P36 P13 AD5 P29 P37 P14 AD6 P30 P38 P15 AD7 Soy P31 P39 P64 zoazt P40 P48 P65 8 00 P41 P49 POR RS Re SE Ea P67 200100000000000 P43 P51 P69 00 00 00 00 60 00 00 00 00 00 O P45 P53 P70 00000000000000 P46 P54 P71 ecoc0c0000000000 P47 P55 4 XO l 00 O O x QN CO sf LO CO P cO oo0oo0oo0ooocooOoOoococococo QD O v I c KO l 0 O t ON 00 CN CN CN CN P P P P OOOO OnoooaaaaaanaanoaAaAo B cs 565 n n II b d i CB290 7 5 6 t 2 9 10 Port Blocks How to connect Battery to CB290 When a super capacitor is used for VBB of CB290 a length of couple days to couple weeks can be backed up once powered OFF CB290 consumes about 15 20mA of current when idling For longer backup period a battery can be used Using a battery with large capacity could yield up to 1 year of data backup Make sure to use a diode as s
58. and 2 are for connecting to the 12V signals of RS232 Channel O Download port The CB220 model has ports 10 and 11 for RS232 Channel 1 5V signals 12V sour di SZ 24h vin sin Q2 230 vss ATN 13 22p RES 12V vss rj4 21 voD Po Qs 200 P15 P1 ge 190 P14 P2 O7 180 P13 P3 ge 17H P12 5V pa go 160 Pu P5 10 15 D P10 4 Pe C 1 EN 14p Pa GND P7 O12 130 P8 For CB280 there is are 5V and 12V signals for RS232C Channel 1 12V 12V 12V 5V 12V The reason for two 5V and 12V signal level exist is as follows Since PC uses RS232 12V signals we will need to make a separate circuit for converting to 5V signals for CUBLOC But since there are 12V signal outputs the user doesn t have to worry about making a separate circuit For downloading to CUBLOC it is very easy since you can connect a PC cable directly to pins 1 and 2 For RS422 and RS485 conversions 5V signals are provided for RS232 Channel 1 242 For CB280 12V signals are provided for RS232 communication Please be careful to use only one of the 5V or 12V connections at one time The following shows a simple circuit diagram of RS232 conversion from 12V to 5V signal using a MAX232 chip cECXVIN CuBLOC RX CuBLOC TX MAX232 is a
59. are provided on the pins P5 P6 and P7 TTLTX1 TTLRX1 P18 pig gt PWM3 P28 p20 gt PWM4 P32 p21 gt PWM5 SS p22 P34 P23 P35 Please refer to the table below for PWM Channels and corresponding I O ports PWM Channel CB220 CB280 CB290 CT1720 PWMO I O 5 I O 5 I O 5 1 0 8 PWM1 1 0 6 1 0 6 1 0 6 I O 9 PWM2 1 0 7 1 0 7 1 0 7 I O 10 PWM3 I O 19 1 0 89 I O 11 PWM4 I O 20 I O 90 I O 12 PWM5 I O 21 I O 91 I O 13 170 Ramclear RAMCLEAR Clear CUBLOC BASIC s RAM BASIC s data memory can hold garbage values at power on Ramclear can be used as a type of garbage collector to clear the ram There are CUBLOC modules that support battery backup of the RAM If you don t use Ramclear command in these modules CUBLOC will remember previous values of RAM before powering off 171 Reverse REVERSE Pin Pin I O Pin Number 0 255 Reverse the specified pin output High to Low or Low to High OUTPUT 8 Set Pin 8 to output LOW 8 Set output to LOW REVERSE 8 Reverse LOW to HIGH 172 Rnd Variable RND O The command Rnd creates random numbers A random number between O and 65535 is created and stored in the specified variable The number inside Rnd has no meaning DIM A AS INTEGER A RND 0 Internally within CUBLOC this function is Pseudo Random it creates a random number based on the previous values When powered off and turned back on again the sa
60. character Arc ARC x y r start end Bcd2bin Variable BCD2BIN bcdvalue Variable Variable to store results Returns LONG bcdvalue BCD value to convert to binary Bclr BCLR channel buffertype channel RS232 Channel 0 3 buffertype O Receive 1 Send 2 Both Beep BEEP Pin Length Pin Pin number 07255 Length Pulse output period 1765535 Bfree Variable BFREE channel buffertype Variable Variable to store results No String or Single channel RS232 Channel number 0 3 buffertype O Receive Buffer 1 Send Buffer Bin2bcd Variable BIN2BCD binvalue Variable Variable to store results Returns Long binvalue Binary value to be converted Blen Variable BLEN channel buffertype Variable Variable to store results No String or Single channel RS232 Channel number 0 3 buffertype O Receive Buffer 1 Send Buffer Bmp BMP x y filenumber layer X y X y position to display BMP Filenumber BMP File number Layer Layer to display BMP Box BOX x1 y1 x2 y2 Boxclear BOXCLEAR x1 y1 x2 y2 418 Boxfill BOXFILL x1 y1 x2 y2 logic logic O 0R 1 AND 2 XOR Bytein Variable BYTEIN PortBlock Variable Variable to store results No String or Single PortBlock I O Port Block Number 0715 Byteout BYTEOUT PortBlock value PortBlock I O Port Block Number 0715 value Value to be outputted between 0 and 255 Circle CIRCLE x y r
61. d ATN g vss Q SS Po dl SCK 4 P1 MOSI 4 P2 d MISO P3 g pag Ps 10 P6 g Bm P9 P7 12 P8 180 TTLTX1 TTLRX1 AVREF P48 Packet is for size of packet that will cause an interrupt For example the touchpad require 4 bytes to be received before an interrupt is called Here the size of the packet is 4 Buffersize is the total size of the receive buffer The buffer size must be at least 1 greater than packet size buffersize packet 1 A larger buffer will essentially give you more time to process the interrupt routine The buffer size is usually set to 5 or 10 times the packet size Mode will set the receiving mode of the received data Please refer to the below table Mode Valu Bit Diagram e Pattern LSB First amp H20 0010 XXXX MSB First amp HOO 0000 XXXX SCK Low amp HO8 xxxx Edge 1xxx Triggered SCK High Edge amp HOO xxxx Triggered Oxxx Sampling amp H04 xxxx after SCK x1xx ignes Sampling amp HOO xxxx o f 1 TS 11 before SCK xOxx 181 You can add the values of the receiving modes For example for MSB first High Edge Triggered SCK and sampling after SCK 0x00 0x00 0x04 0x04 Here are some of the common examples SCK 8 H00 Sample SCK amp H04 Sample SCK 8 H08 Sample SCK amp HOC Sample MSB Bit6 Bit5 Bit4 Bits Bit2 Bit LSB Jl MSB Bit6 Bit5 Bit4 Bits Bit2 Bit LSB MS
62. data memory space is reserved for use by peripherals such as DISPLAY and the RS232 buffers The 80 bytes are used for DEBUG command Sub and Function routines and interrupt routines use up data memory space Of the available 2048 bytes about 1800 bytes can be used for global variables The more Sub Function routines you use you will have less memory available for variables and constants When the user uses buffers with command SET DISPLAY or OPENCOM the data memory will lose that much amount of memory space to use for variables Initializing Memory CUBLOC BASIC data memory is not cleared at POWER UP The user must initialize variables to zero or use RAMCLEAR command to clear the whole memory Ramclear The data memory will contain garbage values at POWER UP This is because in the case of Battery backuped modules the variables will remember their values after powering off and on 73 Arrays CUBLOC BASIC supports up to 8 dimensional arrays each dimension allowed up to 65535 members DIM A 20 AS BYTE Declare A s array size as 20 DIM B 200 AS INTEGER Declare Integer array DIM C 200 AS LONG Declare Long array DIM D 20 10 AS SINGLE 2 dimensional Single array DIMAS TIA LO AS STRING TE Declare String array s AO A 3 6 A 3 3 6 CUBLOC supports multi dimension arrays including character arrays Up to 8 D arrays are supported Please make note of how much memory is used when using multi dimensional arrays
63. display it onto the DEBUG window At the beginning of the program we will enable writes to the DS1302 chip and set the ADDRESS 0 to 50 seconds Within the Do Loop we will read the data from DS1302 The DS1302 chip has 6 addresses as shown below ADDRESS 1 min 10 aconess2 hou ep s s ADDRESS 3 date ADDRESS 4 mont o o o ov ln 0 ADDRESS 6 day These addresses can be used to read and write to the DS1302 Please note that the data is in BCD code format END 323 NOTE 10 MCP3202 12 Bit A D Conversion The CUBLOC has a 10 bit A D converter Without a separate chip you can get up to 10 bits of A D conversion But for greater resolution meaning greater precision you can use a chip like the MCP3202 MCP3202 is a 12 bit A D converter that supports SPI protocol Here we will show you how to implement this 12 bit A D converter into your project MCS3202 TIT Pin Function I O Direction Explanation CS Chip Select Input Low for data communication CLK Clock Input Clock signal DI Data Input Input Data input from MCP3202 DO Data Output Output Data output from MCP3202 Filename mcp3202 cul gt Const Device Const iodi 7 Const iodo 6 Const ioclk 5 Const iocs 4 Dim I As Byte Dim ad As Integer Do Low iocs i amp b1011 Channel 0 i amp h1111 Channel 1 Shaterouk loclk 10da1 0 1 4 ad Shiftin ioclk iodo 3 12 High iocs Debug Dec ad cr Dela
64. eres ee eae ene rarum 142 oio frere PEPERIT RES 143 ING ere ME tM A a EE 144 INPUT PRSETER a aeai IEEE ea aaa ai aia Eaa aie 145 KEY Ita UL ALTI ALIE 146 Mum 146 Momm LIP 147 LAS A DSTI 148 A A 149 Mead a de 150 Noa A A ae dde no 151 NO Piette renta i cent dc A E ee pae a Eo Fa doa YS E a gw da ERR dS 152 On ING ciere ende A Medica Sued anes re erae 153 On Ladderint GOSUD eesseseseeeseee nennen nnne nene anseres see sean 154 On Pad GoSsub escas ere ntc 156 On Reclutar Adee saute covets a a aaa adis e iia 157 ON Timer uie ciere tenter A a de 158 Opencom EET EIEPRC EM PER REC e E aT 159 QUE ie estar ee ser eset ele A dete vesh xe dua ated avid p dere ea uve Me ne YE PEE 161 UC PU ese MM EC TENE SEE 162 DUES iaxdeteebest kae nen deedeeud a 163 PAS tas ung oe re vadis oie ca ege Fai ocv exi sedet at 163 ucc Qm E 164 old EE 164 Pulsout z3 nAISID ALIE LGISUNI IE M e nM INN Mice 165 BUE us esclave A xe Tue Fre des irae ve rere le raa 166 PUESE 6er eic ia 12e Jas och esae nr a nie Patin dde ea cut A ERN E catasauteiled Ser ua RE Ea HARE 167 e A NO 168 PM caia 169 Ramiclear ii A A A a 171 PI E iii hi opor Lo E 172 RNC iecit ver den en ex ex Rx Ee Ri een ad eru eee Von 173 Select Gase ai 174 Set Debug iude uet Merritt 175 Set 126 uc sesta t eie vede cue da av eve eae cea dae aE EE uated vM ES 176 Set ladder on off 5 ods ee cb tae sean bed cate Lern tee Suena deem ais 177 Set ModbU s a a r a a DNI EDI Y Teri v
65. execution time of BASIC LADDER LOGIC also gets affected If the BASIC code is made up of an infinite loop LADDER LOGIC will also stop LADDER LOGIC s main advantage is that it can process input in a guaranteed scan time If LADDER LOGIC cannot process within this guaranteed scan time because of BASIC it might be better to not include BASIC capabilities The second weakness is that BASIC can only be used as part of LADDER LOGIC BASIC is a powerful language by being able to process complex algorithms But if we can only use BASIC as part of LADDER LOGIC we are not fully using BASIC to its maximum performance The third point has to do with I Os BASIC language s execution of I Os can create unwanted collisions with LADDER The reason is that LADDER LOGIC I Os are updated while in BASIC I Os are directly accessed After solving these problems we have created a BASIC and LADDER LOGIC processor that supports real time multi tasking BASIC runs BASIC and LADDER runs LADDER simultaneously without causing collision between the each other 21 With just BASIC you will be able to create many devices In comparison to other BASIC processor on the market today CUBLOC s BASIC clearly has faster processing speed and the upper hand on the main features If LADDER LOGIC is not necessary the user may use just BASIC In the case of I Os the user can specifically control the I Os used by BASIC and LADDER thereby eliminating I O collision probl
66. ive Connectio Accept Passive Connection Auto Increment Source Port Local Port Password Required Bl 4 Active Connection Active Connection Connection Response Modem Emulation Mode Host ort Telnet Mode Use Host List E s Disconeectior Disable Hard Disconnect Disconnect With DTRDrop 333 If you have setup correctly your screen should match the one above Please Click OK and you Click OK again Later when you are testing on the internet you can change this address to the static IP address of the PC that the CuMAX Server will run on Please repeat above process for every XPORT that you want to control with the CuMAX Server program NOTE You need to install Java software before using this program Please go to www java com to download the free software Please run CUMAXvXXX exe now You will see the above screen when you first start up the program CuMAX Server will automatically search for the XPORTs How to Download an Object File Compile and save to object file in CUBLOC Studio CUBLOC Studio E WCuSamplesWAtestWtimer cul SE Edit Device Run Setup Help New Open Cti 0 Ladder Import Save Ctri 8 Save As Print Ladder Print BASIC Print Setup Download from object file BASIC Section Fl Ladder Section F2 EsWCuSamplesWitestitimer cul E WCuSamplesW testWBinary cul EsWseajinWuzzypermv 12 cul E WCuSamplesWCuTOUCHMAXWSmartkeypadv001 cul Exit
67. jump to the label when the buffer amount is equal to the set packet size Please make sure to use RETURN command after the label Const Device Ct1700 Dim TX1 As Integer TY1 As Integer Contrast 450 Set Pad 0 4 5 On Pad Gosub GETTOUCH Do Loop GETTOUCH TX1 Getpad 2 TY1 Getpad 2 oce S19 xa aL 110 Pulsout 18 300 Return 156 On Recv1 ONRECV1 GOSUB label When data is received on RS232 Channel 1 this command ON RECV1 will automatically let the program jump to the specified label The processor will automatically check for receiving data and cause interrupts when this command is used Dim A 5 As Byte Opencom 1 19200 0 100 50 On Recvl DATARECV RTN Jump to DATARECV RTN when RS232 Do Channel 1 receives any data Loop Infinite Loop DATARECV RTN If Blen 1 0 gt 4 Then A 0 Get 1 1 Read 1 Byte PAS HGR Read 1 Byte A 2 Get 1 1 Read 1 Byte A 3 Get 1 1 Read 1 Byte NE gt li Read 1 Byte End If Return End of interrupt routine IMPORTANT When RECV interrupt routine is being executed another RECV interrupt routine will not be allowed to be executed After it finishes current interrupt routine execution the processor will come right back to another ON RECV1 interrupt routine when there s still data being received data in receive buffer 157 On Timer ON TIMER interval GOSUB label Interval Interrupt Interval 1 10ms 2 20ms 65535 655350ms 1 to
68. state Contrast CONTRAST value value Contrast Value Control the contrast of the LCD with CONTRAST command Contrast 450 217 Light LIGHT value value Back light O OFF 1 0N Turn back light ON and OFF Default is ON Wmode WMODE value value O FAST 1 SLOW Record data to the LCD To draw pictures or print characters to the LCD you must write to the memory in the LCD When writing in the FAST mode there could be a chance that the LCD screen gets affected by snow effect In order to reduce this effect you can set the writing mode to SLOW mode When too many commands are sent to CUTOUCH there might be cases where it will not be able to draw everything In this case you can use the Waitdraw command to wait for CUTOUCH to finish the current drawing commands before continuing You can only use Waitdraw command in CUTOUCH GHLCD does not support this command 218 Font FONT fontsize efontwidth fontsize 0 8 Font Selection efontwidth O fixed width 1 variable width GHB3224 has 4 different size and 2 different width Font Type Font 0 1 10 x 16 2 3 4 5 16 x 16 6 7 24 x 24 8 48 x 48 Const Device cT1700 Cales Delay 100 ont 0 0 locate 10 10 Print FONT 0 0 ABCDEFGHIJKLMN im 200 locate 10 30 Print FONT 2 0 ABCDEFGHIJKLMN ont 6 0 locate 10 50 Print FONT 6 0 ABCDEFGHIJKLMN ont 8 0 locate 10 72 Print FONT B 0 m o al ct e locate 10
69. the main program INTERRUPT ROUTINE MAIN PROGRAM External Key input RS232 receive can happen at any moment Since the main program cannot wait forever to receive these inputs we need an interrupt While the main program is running if there occurs an interrupt from key input or RS232 data receive the interrupt routine can be used to take care of those inputs CUBLOC possesses one of the most flexible interrupts in the world While one interrupt routine is running another interrupt request of the same type is ignored If an RS232 RECV interrupt occurs while executing an RS232 RECV interrupt routine it will be ignored On the other hand if an INT Edge interrupt occurs during execution of an RS232 RECV interrupt routine it will be executed immediately In CUBLOC same types of interrupts are ignored if they are of the same type Different types of interrupts are not ignored Interrupt Type Explanation On Timer Create interrupt within the set interval On Int Create interrupt when external input is received On Recv Create interrupt when RS232 receives data On LadderInt Create interrupt when Ladder Logic requests for an interrupt On Pad Create interrupt when Pad receives data 90 Pointers using Peek Poke and Memadr Following is an example that uses EEWRITE command and EEREAD command to read floating point data Const Device CB280 Dim f1 As Single f2 As Single f1 3 14 Eewrite 0 f1 4
70. turns ON D s1 s2 DWord 32 bit When s1 and s2 are same Output turns ON D lt gt s1 s2 DWord 32 bit When s1 and s2 are different Output turns ON D gt s1 s2 DWord 32 bit When s1 gt s2 Output turns ON D lt s1 s2 DWord 32 bit When s1 lt s2 Output turns ON D gt s1 s2 DWord 32 bit When s1 gt s2 Output turns ON D lt s1 s2 DWord 32 bit When s1 lt s2 Output turns ON DO TI MO You can mix different comparisons as shown below DO TI gt CO 88 MO E 0 lt D1 100 When either DO T1 or D1 lt 100 and if CO gt 99 MO will turn ON In other words either DO has to equal to value of T1 or D1 has to be less than 100 while CO must be larger or equal to 99 382 How to store Words and Double Words Byte is 8 bits Word is 16 bits and Double Word is 32 bits 1 BYTE as AOTAN Da 1 WORD DOUBLE WORD There are 2 ways to store Word of Double Word size of data A Word or Double Word can be stored starting from the LOW BYTE or from the HIGH BYTE In CUBLOC it is stored from the LOW BYTE or LSB Least Significant Byte As you can see below 1234H is stored in Memory Address O and 12345678H is stored in Memory Address 5 In every Memory Address 1 byte of data is stored Q o 001 40 nnbU O The relays C T D are in units of Words To store a Double Word data 2 Word spaces will be required meaning two relay spaces Below is an example of store a Double Wor
71. type of I2C protocol that is part of CUBLOC For CB220 use I O Port 8 Clock and Port 9 Data souT 1 a 24 VIN SIN 2 231 vss ATN 3 B 22 RES vss 4 210 vob Po gs5 20H P15 P ge 49D P14 P2 q7 180 P13 P3 8 170 P12 P4 g9 160 P11 P5 10 15D P10 P6 C 11 EN 140 P9 SDA P7 12 130 P8 SCL CuNET can be used with displays that support it CuNET does not used Baud Rate Settings it uses slave address settings instead SET DISPLAY 2 0 1 50 CLCD Slave address of 1 Send buffer of 50 Since CuNET supports multiple devices per CuNET lines slave addresses are required 1 N communication can be accomplished with 2 lines 5V eV Slave Slave Slave Address Address Address a 34 127 Slave Slave Address Address 01 02 Although multiple devices can be connected to the I2c for displays only ONE device may be attached 207 Cls Initialize the LCD and clear all layers Set a little bit of delay for the LCD to initialize CLS DELAY 200 Csron Turn Cursor ON Default if OFF Csroff Turn Cursor OFF Locate LOCATE x y X X axis position of LCD Y Y axis position of LCD Set the position of the text layer After the CLS command the LCD defaults to position 0 0 LOCATE 1 1 Move cursor to 1 1 PRINT COMFILE Print PRINT String Variable String String Variable When using variables constants String representation of the var
72. very useful chip for converting between 5V and 12V of RS232 signals 16 15 14 Rs232c OUTPUT 13 RS232C INPUT 12 TILOUTPUT OJAN 41 TTLINPUT RS232C OUTPUT 7 10 TIL eur RS232C INPUT B 9 TILoUTPUT 243 CuNET CuNET is a communication protocol for CUBLOC peripherals such as CLCD GHLCD CSG modules With just 2 pins SCL and SDA you can communicate with up to 127 devices simultaneously CuNET uses CUBLOC s I2C protocol to communicate To use CuNET please make sure to add pull up resistors 4 7K each to the SCL and SDA lines SCL and SDA pins are in a open collector style protecting against outside noise It automatically removes pulses less than 50ns VIN VSS RES VDD P15 GND P14 5V RESET P13 SCL P12 SDA P11 P10 P9 P8 4 7Kohm x2 For using CuNET the 4 pin connector s pin 1 must be connected to ground pin 2 to 5V or RESET pin 3 to SCL and pin 4 to SDA This 4 pin connector will be used as standard for CNET communications When using CuNET the CUBLOC core module will act as the master and the device connected to as the slave All CuNET devices will respond to CUBLOC while in idle state CuNET operates in a Master Slave mode Slave cannot start communication with the master For this type of communication you must use PAD communication PAD can receive inputs from other devices Please refer to ON PAD command for detailed information 244 CuNET device s connector s pin 2 connects
73. which DO LOOP can be terminated EXIT DO command can also be used within the DO LOOP to exit from the loop Do Commands Loop Dim K As Integer Do K Adin 0 Read AD input from channel 0 Debug Dec K Cr Delay 1000 Loop In the above example the program will loop infinitely within DO and LOOP EXIT DO or GOTO command must be used to get out of the infinite loop Do While Condition Commands Exit Do Loop Do Commands Exit Do Loop While Condition DO WHILE will infinitely loop until condition in WHILE is met Do Until Condition Commands Exit Do Loop Do Commands Exit Do Loop Until Condition DO UNTIL will infinitely loop until condition in UNTIL is met 125 Dtzero DTZERO variable Variable Variable for decrement No String or Single Decrement the variable by 1 When variable reaches O the variable is no longer decremented DTZERO A Decrement A by 1 126 Eeread Variable EEREAD Address ByteLength Variable Variable to store result No String or Single Address 0 4095 ByteLength Number of Bytes to read 1 4 Read data from the specified address in EEPROM DIM A AS INTEGER DIM B AS INTEGER Ae up EEWRITE 0 A 2 Store A in Address 0 B EEREAD 0 2 i Read from Address 0 and store in B 127 EAdin Variable EADIN mux Variable Variable to store results No String or Single mux AD input pin Combination MUX 0 21 This command is use
74. wishes he can change the relay to store or write values by changing the BASIC code Please press Replace Basic Code when you are done to product the final BASIC code Please be aware that older code will be deleted at this point You can also save the setup to a file by clicking on SAVE AS Click on LOAD to bring back saved setup values 353 Usage of Ladder Relay With this feature the user can see alias of all relays By using this feature the user will be able to save a great deal of time while debugging and developing the final product Please go to Run gt View Relay Usage to open this window IS T Jc 354 Relay Expression CB220 CB280 Relays The following is a chart that shows CB220 CB280 relays Relay Name Range Units Feature Input Output Relay P PO P127 1 bit Interface w External devices Internal Relays M MO M511 1 bit Internal Relays Special Relay F FO F127 1 bit System Status Timer T TO T99 16 bit 1 Word For Timers Counter C CO C49 16 bit 1Word For Counters Step Enable S So Si5 256 steps For Step Enabling 1 Byte Data Memory D DO 99 16bit 1 Word Store Data P M and F relays are in bit units whereas T C and D are in word units To access P M and F relays in word units you can use WP WM or WF Relay Name Range Units Feature WP WPO 7 16 bit 1 Word Relay P Word Access WM WMO WM31 16 bit 1 Word Relay M
75. within the specified scan time of 10 milliseconds If you do not use SET LADDER ON command LADDER LOGIC will not be executed SET LADDER ON Declare devices to use You must declare the device to be used so the compiler knows The following are examples of how to use the CONST DEVICE command CONST DEVICE CB220 Use CB220 or CONST DEVICE CB280 Use CB280 This command must be placed at the very start of the program 361 To Use Ladder Only without BASIC You must at least do a device declaration port declaration and turn on the LADDER for BASIC even if you are going to only use Ladder The following is an example of such minimal BASIC code Const Device CB280 Device Declaration Usepin 0 In START Port Declaration Usepin 1 In RESETKEY Usepin 2 In BKEY Usepin 3 0ut MOTOR Alias MO RELAYSTATE Aliases Alias M1 MAINSTATE Set Ladder On Start Ladder Do Loop BASIC program will run in infinite loop 362 Enable Turbo Scan Time Mode In order to use both BASIC and LADDER a scan time of 10ms is supported for LADDER If you would like to enable Turbo Scan Time Mode when not using BASIC you can follow the example below LADDERSCAN command can be used inside a DO LOOP to enable Turbo Scan Time Mode Depending on the size of the Ladder program this scan time MAY change For small programs less than 50 rungs a scan time of 500us to 1ms are possible Const Device CB280 Device Declaration Usep
76. 000 00100000 01000000 10000000 151 Nop Nop This command does a no operation command command cycle time It simply takes up one Low 8 Nop High 8 Output very short pulse to port 8 About 50 micro Sec Nop Low 8 152 On Int ON INTx GOSUB label x 0 to 3 External Interrupt Channel This command On Int must be called before accepting external interrupt inputs CUBLOC has 4 external interrupt pins The interrupt pins can be set to sense input on the Rising edge Falling Edge and Both SET ONINTx command must be used with this command in order for the interrupt to work CB220 has no external interrupt inputs Rising Edge Falling Edge Dim A As Integer On INTO Gosub GETINTO Set INTO 0 Falling Edge Input Do Loop GETINTO A A 1 Record number of interrupts Return 153 On Ladderint Gosub ON LADDERINT GOSUB label If Relay F40 turns on in LADDER and ON LADDERINT GOSUB command is used then the processor will jump to the routine specified by On Ladderint command This can be used when LADDER part of the program needs to jump to BASIC code Please use the SETOUT and DIFU command to write 1 to the relay F40 When BASIC interrupt routine is finished relay F40 can be cleared by writing a zero to it During the interrupt routine execution writing a 1 to relay F40 will not allow another interrupt If relay F40 is cleared from BASIC it signs the end of the interrupt routine and is ready
77. 023 OV 5y Input voltage Dim A As Integer Input 24 Set pin to input A Adin 0 Do a A D conversion on channel 0 and store result in A Y 104 The following is AD input ports shown according to the model souT 1 240 VIN SIN 2 23H vss ATN 3 22H RES vss Q4 21H vob Po gs5 20H P15 p16 19D P14 p27 18H P13 AD INPUT P3 08 170 P12 PORT P4 jo 16D P11 P5 10 150 P10 Pe Qu j pros P7 012 130 P8 TTLTX1 TTLRX1 AVREF P48 P30 AD INPUT ae PORT P32 P33 P34 P35 P36 P37 P38 P39 Please refer to the table below for AD channels Channel Model CB220 CB280 CB290 CT17X0 A D channel 0 1 O O I O 24 1 0 8 1 0 0 A D channel 1 I O 1 I O 25 1 0 9 I O 1 A D channel 2 I O 2 I O 26 I O 10 1 0 2 A D channel 3 I O 3 I O 27 I O 11 1 03 A D channel 4 I O 4 I O 28 I O 12 1 04 A D channel 5 I O 5 I O 29 I O 13 1 05 A D channel 6 I O 6 I O 30 I O 14 1 0 6 A D channel 7 1 07 I O 31 I O 15 1 0 7 ADIN command only converts once upon execution In comparison TADIN returns the average of 10 conversions there by giving the user more precise results If you need more precision we recommend the use of TADIN instead of ADIN 105 Alias ALIAS Relayname AliasName Relayname Relay name such as PO MO TO Do not use D area AliasName An Alias for the Relay chosen up to 32 character Aliases may be made up for relays like PO MO CO With Aliases the us
78. 03 ILLEGAL DATA VALUE When bad data is received 09 LRC UNMATCH When LRC is incorrect 263 MODBUS Master Mode ASCII There are no special commands to set CUBLOC to Master Mode for MODBUS communication Master Mode simply n eeds to be able to use RS232 data communication using commands like CUBLOC s GET and PUT The following is an example of ASCII Master Mode implemented in CUBLOC BASIC Const Device 264 Master Source cb280 Dim RDATA As String 80 Dim a As Byte ct As Byte Dim toy AS SELIG SONS Dim Port As Integer Opencom 1 115200 3 80 80 On Recvl Gosub GETMODBUS Set Were aly OTIO Do For Port 2 To 4 BitWrite Port Delay 100 Next For Port 2 To 4 BitWrite Port Delay 100 Next Loop GETMODBUS If Blen 1 0 gt 0 Then A Blen 1 0 Debug GOT RESPONSE B Getstr 1 A Debug B Edd ARE Return End Sub BitWrite K As Integer Dim LRC As Integer PUES Ea OSOS ebhesier 1 HPK 4 dL If D 0 Then Data Receive Interrupt routine When Ending Code 10 on Channel 1 is discovered create an interrupt dl TUEN FO 1915 3927 ONA 0 STURT 150 deL 192 Ojai t If buffer empty then Store the buffer length in A Store received data in B D As Integer Putstr 1 0000 LRC 3 5 K Bytel K Byte0 Gallcullate LRC Else P tstr OD REM LRC 3 5 K Bytel K Byte0 0xFF LRC End If Putstr ll Hex2 LRG 13 20 Send End Sub This is slave source Slave Sou
79. 1 2 3 etc MCS 1 must exist inside MCS O and MCS 2 must exist inside MCS O Likewise up to 7 MCS blocks can be used When MCS 0 is OFF all MCS inside MCS O will turn OFF When MCS turns OFF all outputs within that MCS block will turn OFF Timer will be resetted Counter will be stopped Command When MCS is ON When MCS is OFF OUT Normal Operation OFF SETOUT Normal Operation Maintain status after MCS turned OFF RSTOUT Normal Operation Maintain status after MCS turned OFF Timer Normal Operation Reset to default value Counter Normal Operation Maintain status after MCS turned OFF Other Normal Operation Stop Operation Commands 373 The following screenshot shows MCS used within another MCS i Mo MCS 0 I i HI t 1 i P PS MEN I qui eee x sor PNIS E MCST 1 I WHI t 11 I PI i PS i uHI EX pl MCSCLRI 1 T t j i m EMO UMEN ON I l MCSCLA 0 TE I I EZ A SS Ss iS Se ee N J MCS I if MCS 0 i l t 1 l PO PS al C i l MCSCLA 0 l t 1 E I J Il Fa 1 t 1 PB HI C l I l I I MCSCLR 0 l 1 l I l I 374 Step Control S relay are used for step control The following is the correct format for step control Relay 0 15 7 oua S7 126 In Step Control there s normal step and reverse step For normal step we can simply use the STEPSET command STEPSET Po STE
80. 1 NC 36 e 52 P24 37 53 P25 38 e 54 P26 39 e 55 P27 40 e 55 P47 41 e 57 P46 420 e 58 P45 43 59 P44 44 60 P43 45 6 P42 46 e 62 TTLRX1 4 AVREF P48 P31 P30 Tx 5V P29 P28 P32 P33 P34 P35 P36 P37 P38 P39 P41 470 63 P40 48 e 64 Use Set RS232 command to re set your baudrate and parameter during execution of your program 160 Out OUT Pin Value Pin 1 O pin number 0 255 Value Value to be outputted to the I O pin 1 or 0 Output 1 or O to the specified pin When you execute this command CUBLOC will automatically set the pin to output and output the Value set You do not need to use the Output command to set the pin beforehand when using this command OUT 8 1 Output HIGH signal on pin 8 This is same as using command High 8 OUT 8 0 Output LOW signal on pin 8 This is same as using Low 8 161 Output OUTPUT Pin Pin I O pin number 0 255 Set the Pin to output state All I O pins of CUBLOC module are set to HIGH Z input as default at power ON OUTPUT 8 Set pin 8 to output state You can also use HIGH LOW command to set to output state When using Output command HIGH or LOW state is not clearly defined We recommend the use of HIGH or LOW command to set to output mode LOW 8 Set pin 8 to output mode and output LOW signal 162 Outstat Variable OUTSTA
81. 13 13 STE Menuset 1 2 96 16 176 63 Menutitle 1 13 13 End Menuset 2 2 184 16 264 63 Menutitle 2 13 13 Restart Low 18 Do Loop TX1 Getpad 2 Tx Getpad 2 amete fe EET TYI 10 f Menucheck 0 TX1 TY1 Then Menureverse 0 End If f Menucheck 1 TX1 TY1 Then Menureverse 1 Pulsout 18 300 End If f Menucheck 2 TX1 TY1 Then Menureverse 2 Pulsout 18 300 End If Return Pulsout 18 300 Send out beep to piezo Start End Restart 281 CUTOUCH I O Ports CT1720 32 32 82 Model Name Input Only Output Only A D Input High Counter Input Other I Os Total CT1720 With 82 I O ports the CT1720 has connectors as shown below GND 7 6 5 4 3 2 1 0 GND 15 14 13 12 11 10 9 8 412 313 J14 J1 J2 SSA e e SSA vZd e ovd GZd e ltd 9cd e e cvd 12d e e vd 87d e e ptd 62d e e Std 0 d e e 9rd L d e e ltd PPA 9 sSA 0d e e 8d Zd e e 6d Zd e e Old d e e lid tde ecid Sdeetid 9d e e vid de e Sid pv eeous C sspee Luo 72 9Sde e Zld 6de e d 8Sd e p d 6Sd e s d 09d e e 97d I9d e e 77d Z9d e Bld 9d e e 67d v9d e e 08d S9d e e 18d 99d e e Z8d 49d e e 8d 89d e e 8d 69d e e S8d Old e e 98d l de e 8d OIN OIN Ave OIN Avz9 essa Y Ave o ess 282
82. 15 F AD channel 6 gt D16 AD channel gt D17 High Count gt D39 High Count gt D38 Out iRelayout Out soluti Alias Nick Name Out CMotort Example ou el P pis wj i Out ej MO SubRelay ou el MO ABCD SSCS o4 8 RELAYI Out e Out ej KOREA Out ej Out el C PWM 0 1 2 lt D26 PWM 34 5 lt D29 Y use MODBUS on CHI 115200 z None 8 1 zl F Use Fast Scantime XIISISESESI SEXES SEXES F Load Save As Replace Basic Code As you can see in above screen Device name I O status alias and other features can be set simply by clicking You can set aliases for relays set Modbus to be ON and set the baud rate for the Modbus You can always review the current BASIC code generated in real time by pressing Output BASIC code review tab 352 EE PLC Setup Wizard Ladder environment edit Const Device CB220 Usepin 4 Qut Usepin 5 Out Relayout Usepin 6 Qut Solout Usepin 7 Out Motor Usepin 8 Qut Usepin 9 0ut Countreset 0 iJ Input 0 Baio Adint0 pu Ban Adin 1 n DGB COUNT Loop Load Save As Replace Basic Code For using A D PWM or COUNT you can simply read from the D relays for the results For ADCO the AD value is stored in D 10 The user can simply read from relay D10 to find the value of ADO For PWM3 the user can simply write to relay D29 to output PWM For HIGH COUNT1 simply read relay D39 If the user
83. 192 168 0 99 Port 59001 2 Click on the monitor Lt button 3 Use the checkmarks to monitor specific relays 0 0 0 00 00 336 Use the relay buttons to monitor other relays B M E C D 11 iv TO 253 10 01 02 13 0 4 0 5 1 6 e lv T1 243 lv T2 213 00101172 3 e 4 e 5 e G e 255 0102103011051 1610 5 Make sure to check on the checkmark below if you are using CUTOUCH or CB290 v Check here if monitoring CuTOUCH or CB290 Please refer to Max s Application on our forum http cubloc com phpBB2 for latest updates downloads and details We also have VB version of CuMAX called MAXPort on our forum for Visual Basic users End 337 MEMO 338 Chapter 12 LADDER LOGIC WARNNING If you do not use SET LADDER ON command LADDER LOGIC will not be executed 339 LADDER Basics The following is an example of one switch and a lamp If you take out the power the following results pe If you express the above circuit diagram as LADDER LOGIC the following results H P9 As you can see LADDER is simply an easy way to express circuit diagrams A switch is comparable to the PO port and P9 is comparable to the LAMP There are many ways to connect other devices such as timers counters and etc The following is an OR and AND connection in Ladder Logic 340 In this circuit diagram PO and P2 and connected in logical combination of AND PO and P3 are ORed Whi
84. 21 P16 P1 60 22 P17 P2 70 23 P18 0 P3 8 O 24 pig 2 P4 90 25 P20 P5 100 26 P21 P6 110 O 27 p22 P7 120 28 P23 5 P8 136 29 Pi5 P9 14 6 O 30 P14 1 P10 150 O 31 P13 P11 160 32 P12 113 Byteout BYTEOUT PortBlock value PortBlock I O Port Block Number 0 15 value Value to be outputted between 0 and 255 Output the value to a Port Block 8 I O pins ports are collectively called as a Port Block Pin 0 7 is Block O and Pin 8 15 is Block 1 Depending on the model of CUBLOC the Port Block number can vary When using this command all I O pins within the Port Block are set to output and the value is outputted Y Byteout 1 255 QUEPUE 255 to Port Block I Pins 8 through 15 are set to HIGH Y I O pin 1 only supports input Therefore BYTEOUT 0 will not set pin 1 to Output 114 CheckBf Variable CheckBf channel Variable Variable to store results No String or Single channel RS232 Channel 0 3 Without affecting the RS232 receive buffer the command CheckBf can be used to check the current data in the receive buffer Although it will read what is in the buffer it will not erase the data after reading unlike the GET command Only 1 byte can be read at a time A Checkbf 1 Check current data in the receive buffer 115 Count Variable COUNT channel Variable Variable to store results No String or Single Channel Counter Channel number 0 3 Return
85. 720 Rev B output ports P24 P55 are in high impendence High Z state in order to prevent garbage values outputting at power ON You must use Set OUTONLY ON command to set the CB290 CT1720 output ports to output status Set Outonly On 406 CB280 Proto Board Schematics Appendix D CONE CON22 euo Mo vecH 5 NC ACE BLOCK 14925751 o FEEDBACK ON OFF VIN OUT NO 103 1 H 5 c2 1N5819 o 10DuF 35V h i CONI CONS HEADER 8X2POL HEADER 8YX2POL p 1 CONI CON4 HEADER 8X2POL HE ADER 2POL 2 56 4 PS Pg P10 Pil P12 P13 Pid PIS P32 P33 p34 P35 P35 P37 P38 P39 Pag Pat P42 P43 P44 P45 P4B P47 5V ITN HI T COIL R2 z ci 330 5 105819 330uF 18v LEO y il Eas N CON7 HEADER a 2POL HEADER TX2POL 1 P32 Pag 2 e R35 tp TL SS HH Lo o To JE P39 TONG El o HEADER 8X2POL Ez Pag 407 35V psa RESET SWITCH PIEZO JUMPER Bz1 E DSUBSP zx RS232 PORT CIRCUIT PROGRAM CONNECT EF CUNET Jumper T sv amp suenioneesBas 2 n 43v aacaaaaanaaa ER x m R3 Lr A H A 4 76 4 7K O jl O lv PB P9 i pee E e H sour srr paso Pap ST e ER pat
86. 80 1 21903 1 22737 7 9 20094 1 20868 5 21653 3 10 19159 9 19888 7 20626 7 11 18274 4 18960 5 19654 6 12 17434 8 18080 8 18733 8 13 16638 5 17246 9 17861 4 14 15883 1 16456 1 17034 4 15 15166 2 15706 0 16250 4 305 16 14485 7 14994 4 15506 9 17 13839 6 14318 9 14801 5 18 13225 9 13677 7 14132 2 19 12642 8 13068 7 13496 9 20 12088 7 12490 3 12893 6 21 11561 9 11940 6 12320 7 22 11061 0 11418 2 11776 4 23 10584 6 10921 6 11259 2 24 10131 3 10449 3 10767 5 25 9700 0 10000 0 10300 0 26 9281 3 9572 5 9864 0 For connecting the sensor to the CUBLOC please refer to the following circuit diagram To protect against voltage surges the Zener diode must be used 1Kohm 1 NTC TH 5 1V ZENER DIODE 0 47uF CUBLOC A D CHANNEL O As you can see in the circuit diagram we will be using A D Analog to Digital converter to read the current voltage flowing through the sensor The A D converter will convert the current voltage into a value between 0 and 1024 The most important part of this application note is the following table which converts the value of voltage to A D value between O and 1024 Only some of the temperatures are shown Temp 146456 3 4 966091647 115275 4 4 956998627 306 4 895769279 4 890207868 4 884394522 4 878320427 4 871976604 4 865353924 4 858443112 4 851234752 4 8437193 4 835887094 4 827728362
87. AR as Byte Array of 10 AK Var Integer 10 20 Declare AK as 2 D Integer Array Sr Var Salas lt 12 10 Declare String Array 69 String A String size can be set up to 127 bytes When size is not set default value of 64 bytes will be used as the String size Dim SI As String 14 For maximum usage of 14 bytes Dim ST2 As String Set as 64 byte String variable When setting a String as 14 bytes another byte is allocated by the processor to store NULL When storing COMFILE TECHNOLOGY in a 14 byte String the last 4 characters bytes will not be stored Dim ST As String A 14 ST COMFILE TECHNOLOGY LOGY is not stored COMFILE TECHNOLOGY CQOMETILE nBcBND LOS do not fit here In CUBLOC BASIC must be used for String An apostrophe may not be used ST COMFILE TECHNOLOGY can not be used inside the String ST COMFILE TECHNOLOGY can not be used inside the String ST COMFILE TECHNOLOGY can not be used inside the String You can use CHR amp H22 to express and CHR amp H27 to express and CHR amp H2C to express Example for printing to LCD Print Chr amp H22 COMFILE TECHNOLOGY Chr amp H22 Print Chr amp H27 COMFILE TECHNOLOGY Chr amp H27 Apostrophe 70 To connect multiple Strings you can use a comma as shown below Print ABC DEF GHI Same as PRINT ABCDEFGHI Use CR for
88. AVDD Power supply for ADC Please refer to Appendix F for detailed CB280CS specification 49 CB280CS Application Schematic to PC DOWNLOAD On x2 5V ie spe 01uF do sp g3 z 4p our gs EG kda qs p gs amp P 5V AF d D vB PPM se de sp 85686886 88888888 el UEILEILILES 1am 299a885888 5288858 2 X5 2n222222255 i Wem x2 nnnnnnmunnmnnnnrnrnnr d 8 BU o0 FSRSBRKRBKEBHRT RES Supervisor w t 9 as F3 Pss p l Ro 4r L3 P36 um Lr VDD z VSS El 3rxo sh po r ERE ROS e pis a 4s F3 pos Rs 2 R1 Pwm3 P19 E 5 44 EJ poo Ej R3 si R24 PW4 NTO P20 O 5 43 O Pass PWS IN T P21 O 7 Ll JBL OL 42 3 P4 NT2P22 E 8 a EH pas INT3P23 9 CB280CS 40 L1 pas ssSPo O 10 Mai 5 39 O P44 ain Chi Lj SCK P1 P 38 F3 Pas uus mosi p2 E 12 ATMEGA128 16A 37 Paz MisO P3 g 13 36 Pat bal P4 g 35 L3 P40 V0 1 Pwwoes p 3 E ab en PWM1 PS QO 6 e 33 D Pro c 9 NR amp N N amp N h N R8 8 5 9 uuuuuuuuuuuuuuuu EE EEE ES 4 ERA HE EZ FS 8d 5V e Clvpp OSCOUT Co vss PAZ 18 4320MHz OSC ILLATOR Example CEHIEI CB280CS EE A Main Che ess BS em 18 4320MHz Oscillator CB280CS Sub Chip 50 Chapter 3 CUBLOC STUDIO Editor Compiler CUBLOC STUDIO Basics After installing CUBLOC STUDIO and executing it you will see the following screen amp CUBLOCstudio untitle
89. B Bit6 Bit5 Bit4 Bits Bit2 Bit LSB fmm MSB Bit6 Bit5 Bit4 Bits Bit2 Bit LSB For PAD communications you can use Comfile s Keypads or Touch screens The Set Pad command will automatically set the ports PO through P3 the user doesn t have to set them 182 Set Rs232 Set Rs232 channel baudrate protocol channel RS232 Channel 0 3 Bauarate Baudrate Do not use variable protocol Protocol Do not use variable You can only use Opencom command once to open a serial port In order to change the baudrate and protocol the Set Rs232 command can be used For the protocol parameter please refer to the table below Parity Stop Bit Bit of Bits 0 0 NONE 0 1 Stop 0 0 5 bit Bit 0 1 Reserve 1 2 Stop 0 1 6 bit Bits 1 0 Even 1 0 7 bit 1 Odd 1 1 8 bit The below table shows typical settings based on the previous table Bits Parity Stop Bit Value to Use 8 NONE 1 3 8 EVEN 1 19 Hex 13 8 ODD 1 27 Hex 1B 7 NONE 1 2 7 EVEN 1 18 Hex 12 7 ODD 1 26 Hex 1A Opencom iO OSO 20 Open Rs232 channel 1 SERES 2322 OU L9 Change Baudrate amp Parity 183 Set Until SET UNTIL channel packetlength untilchar channel RS232 Channel 0 3 packetlength Length of packet 0 255 untilchar Character to catch This is a conditional statement you can put right after the ON RECV command Since the ON RECV command will cause an int
90. C Addres Value Range Bit Structure S 0 Secon 0 59 294 digit place 1 digit place d 1 Minute 0 59 214 digit place 1 digit place 2 Hour 0 23 and digit 1 digit place place 3 Date 01 31 gna digit 1 digit place place 4 Day 0 6 1 digit place 5 Month 1 12 2m 1 digit place digit 6 Year 00 99 2 digit place 1 digit place Please refer to the chart below for day of the week and its corresponding numerical value Sunday Monday Tuesday Wednesday Thursday Friday Saturday alaj S UD N o 196 Timeset TIMESET address value address Address of time value 0 to 6 value time value 0 255 Use TIMESET command to store new time values Address Value Range Bit Structure 0 Second 0 59 214 digit place 1 digit place 1 Minute 0759 2 digit place 1 digit place 2 Hour 0 23 and digit 1 digit place place 3 Date 01 31 2nd digit 1 digit place place 4 Day 0 6 1 digit place 5 Month 1012 10 1 digit place 6 Year 00 99 2 digit place 1 digit place The following is an example code showing how to set new time and outputting current time to the debug window Const Device CT1700 Dim I As Byte Timeset 0 0 NSEC Timeset 1 amp H32 Min Timeset 2 amp H11 Hour Timeset 3 amp H1 Date Timeset 4 amp H5 Day of the week Timeset 5 amp H6 Mont
91. C embedded computer In the recent years there has been increase of use of touch screens in the industrial field But to use one the user required connecting to a PLC and learning to manipulate complex methods in order to use it In addition cost of touch screen has been very expensive Our CUTOUCH is a new type of embedded controller that integrates Touch screen PLC and graphic LCD into one The biggest difference between CUTOUCH and other touch screens is that it s the only Visual Touch screen controller that can be programmed with BASIC and LADDER in the world today BASIC language can be used to draw graphics and print characters to the LCD and receive input from the touch screen before processing the x and y positions Sensor input through I O turning relays on off AD DA conversion and RS232 communication are very easy to implement in comparisons to traditional non BASIC PLCs With the LADDER LOGIC side of CUBLOC the user may do sequential processing and real time logic processing as in traditional PLCs CUTOUCH has a flash memory for BASIC and LADDER programs A serial port can be used to download and debug After downloading is done it can run in a Stand alone state If you are thinking about developing a device that uses a touch screen please review CUTOUCH and we guarantee you that it will let you spend more time designing and less time to develop Comfile Technology Inc 272 About CUTOUCH CUTOUCH is an int
92. C STAMP users When using Parallax s Basic Stamp compatible development board please be aware of the following There is a capacitor on the Basic Stamp compatible development boards which causes download error in CUBLOC Studio Please short or take out the extra capacitor connected to the DTR of the board as shown below CB220 has a this capacitor on the chip itself Short here VIN VSS RES VDD P15 P14 P13 P12 P11 P10 P9 P8 VIN VSS RES VDD P15 P14 P13 P12 P11 P10 P9 P8 405 Appendix C Using Output Port on the CB290 CT1720 Warning CB290 rev A CT1720 rev A Output ports Please be aware of the following when using CB290 rev A or CT1720 rev A with output ports 24 through 55 When using CB290 or CT1720 with a backup battery CB290 Proto Board Baseboard 64M and CT1720 the data memory is saved during power OFF Even the output on the I O ports are saved to memory When powered ON the output ports will recover from the status it was in at power OFF This is to let the modules be able to continue their existing processes in case of power outage Please be aware that when there are unknown values and battery backup is used there can be garbage values at power ON meaning unknown values outputting on the output ports Please use regular I O ports if you need to make sure that the output needs to be OFF at power ON Using Output ports on the CB290 CT1720 Rev B The CB290 CT1
93. Circlefill CIRCLEFILL x y r Checkbf Variable CHECKBF channel Variable Variable to store results No String or Single channel RS232 Channel 0 3 Color COLOR value Cls CLS Clear CLEAR layer Cmode CMODE value value 0 BOX type 1 Underline type Const CONST name as type value Const CONST type name as type value value value value Array Type Byte Integer Long String Single Contrast CONTRAST value value Contrast Value Count Variable COUNT channel Variable Variable to store results No String or Single Channel Counter Channel number 0 3 Countreset COUNTRESET channel Channel Counter Channel 0 5 Csroff CSROFF Csron CSRON Dcd Variable DCD source Variable Variable to store results No String or Single Source source value Debug DEBUG data data data to send to PC 419 Decr DECR variable Variable Variable for decrementing No String or Single Defchr DEFCHR code data Code Custom character code amp hdb30 amp hdbff Data 32byte bitmap data Delay DELAY time Time interval variable or constant Dim DIM variable As variabletype variable As variabletype Variabletype Byte Integer Long Single String Dotsize DOTSIZE value style Dprint DPRINT string Dtzero DTZERO variable Variable Variable for decrement No String or Single Eadin Variable EADIN mux Variable Variable to store results No String or
94. DATA 1 THEN GOTO ERR PROC When you don t need to check for acknowledgement you can just use any variable to receive the acknowledgement as shown below A I2CWRITE DATA One byte of data transfer takes approximately 60 micro seconds Please refer to Chapter 8 About I2C for detailed I2C communications description 141 If Then Elseif Endif You can use If Then Elseif Else EndIf conditional statements to set conditions for your program If Conditionl Then Expressionl Expression2 Elseif Condition2 Then Expression3 Else Expression4 End If Usage 1 If A 10 Then B 1 Usage 2 If A 10 Then B 1 Else C 1 Usage 3 If A 10 Then When using more than 1 line of if B do not put any Expressions after Then End If Usage 4 If A 10 Then Be Else End If Usage 6 lt Usage 5 If E Then i AU thet Elseif A lt 20 Then i C 1 eas Se Elseif A lt 40 Then C 2 Bde Else D 1 End If 142 In Variable IN Pin Variable The variable to store result No String or Single Pin 1 O pin number 0 255 Read the current state of the specified pin This function reads the state of the I O pin and stores it in the Variable When you execute this command CUBLOC will automatically set the pin to input and read the status You do not need to use Input command to set the pin beforehand when using this command DIM A AS BYTE A IN 8 Read the current state of pin 8 and store in variab
95. Device Select Com Port Select Start Stop Time Chart Manltor zreon com rra m Paa coe Cursor Move Parga fp control icon Zoom control Relay select Use Unuse Time interval display X position To use the Time Chart Monitor you must set Debug off in Basic To do this simple add Set Debug Off command at the very beginning of your code Set Debug Off While using Time Chart Monitor Ladder Monitoring may not be used either 349 WATCH POINT When you want to watch the status of relays and timers outside the current Ladder Monitoring screen you can use Watch Point feature You can use two apostrophes to add a WATCH POINT For example you want to see PO right next to some other relay that is on exact opposite side of the screen Examples PO Pi DO Y CUBLOC studio c Wcubloc testWu3 1018 cul J File Edit Device Run Setup Help iau d 428 4 gt miu B s fex FI Basic F2 LADDER Ladder Mnemonic 3E re E pte e Monitoring Stop P56 P30 J0G LOW MODI MI JOG X INPUT J M18 JOG Y INPUT O M19 JOG Y INPUT C JOG Z INPUT M20 C Mel JOG Z INPUT O M22 P30 J0G HI MODE JOG HI MODE C M23 a x9 Y 82 Modified Program 9602 Bytes Data 101 Please be aware that it s two APOSTROPHES not a QUOTATION MARK 350 Opt
96. G WXCHG s d DWXCHG s d The command WXCHG exchanges data between s and d WXCHG is for exchanging 1 Word and DWXCHG is for exchanging Double Word Usable Relays P M F S C T D Constants s O O O d O O O START WMOV 100 DO 1 WMOV 123 D1 1 E WXCHG DO D1 JA r 1 When START turns ON DO gets 100 and D1 gets 123 When INO turns ON DO and Di exchange their data The result is as shown below Dip 23 5 D1 100 274 EE Bl ml 386 FMOV FMOV s d n Store value in s to d and n number of times after that to additional locations This command is usually used for initializing or clearing memory Usable Relays P M F S C T D Constants S O O O d O O O n O START WMOV 100 DO NH 1 ACTION FMOY D0 D1 5 1 Below is result of LADDER execution Notice Please Set n less than 255 387 GMOV GMOV s d n Store value starting at s to d by n memory locations Please make sure not to overlap memory locations as this could cause data collisions Usable Relays P M F S C T D Constants s O O O d O O O n O ACTION GMOY DO D10 5 u t l Below is result of LADDER execution DO D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D16 Notice Please Set n less than 255 388 WINC DWINC WDEC DWDEC WINC d DWINC d WDEC d DWDEC d WINC inc
97. H Graphic Data PUSH POP Commands On the GHB3224 series there is a separate stack for storing graphic data You can push and pop current screen or part of the current screen to this stack By storing to the stack you can easily implement a copy cut and paste feature similar to text editors GPUSH and GPOP can be used for precise cutting of the current screen while HPUSH and HPOP can be used for high speed push and pop The stack is a LIFO Last in First out that will pop the last data that was pushed There is about 32KB of Stack memory You can store about 3 to 4 full screens Please refer to the picture below for how the stack works 228 Gpush GPUSH x1 y1 x2 y2 layer Push x1 y1 to x2 y2 box to the stack GPUSH 10 20 200 100 2 Gpop GPOP x y layer logic logic 0 OR logic 1 AND logic 2 XOR logic 3 Clear screen then pop Pop from stack and display on the specified layer at position x y with specified logic GPOP 120 20 2 0 229 Gpaste GPASTE x y layer logic logic 0 OR logic 1 AND logic 2 XOR logic 3 Clear screen then pop Paste from stack and display on the specified layer at position x y with specified logic This is exact same command as GPOP except it will not pop from stack Therefore you can use this command if there is further need to use the current item in stack 230 Hpush HPUSH x1 y1 x2 y2 layer HPUSH HPOP HPASTE commands are similar to GPUSH
98. IC STAMP users eeeen e 405 Appendix C Using Output Port on the CB290 CT1720 406 Appendix D CB280 Proto Board Schematics eeeeeeees 407 Appendix E CB290 Proto Board Schematics comcocccnocconccncnnancnnnnnnns 409 Appendix F CB280CS i nnp ea ias 413 Appendix G CUBLOC BASIC Command summary eee 418 14 Chapter 1 CUBLOC Getting started What is CUBLOC CUBLOC is different from the traditional PLCs that you may associate with Traditional PLCs have cases and connections like the picture below but CUBLOC is an On Chip PLC Industrial Controller meaning you have more freedom and flexibility to the final product size and design CUBLOC Modules are similar to traditional PLCs in that LADDER LOGIC can be used But its small size allows developers to design custom PCBs just like a microcontroller TT sl fill Til me enu traditional PLC ol 00000000000 EZ CUBLOC core module There are different models each with a unique program memory size and number of I O ports Please make a selection based on your product s requirement 16 Model Picture Program Memory I O Ports 16 49 2 91 72 Data Memory 2KB 2KB 24KB Basic Data Memory 1KB 1KB 4KB Ladder EEPROM 4KB 4KB 4KB PWM 3 6 6 Ext INT 0 4 4 RS232 2 2 2 Package 24 Pin DIP 64 Pin Module 108 Pin Module RTC Includ
99. Integer Contrast 550 Set Pad 0 4 5 On Pad Gosub GETTOUCH Filename CT004 CUL gt 291 TX1 Getpad 2 amit Getpad 2 If Menucheck 0 TX1 TY1 1 Then lt lt 4 Pulsout 18 300 Elseif Menucheck 1 TX1 TY1 Then lt lt 4 d 2 Pulsout 18 300 Elseif Menucheck 2 TX1 TY1 Then lt lt 4 E3 Pulsout 18 300 Elseif Menucheck 3 TX1 TY1 Then lt lt 4 4 Pulsout 18 300 Elseif Menucheck 4 TX1 TYl Then lt lt 4 5 Pulsout 18 300 Elseif Menucheck 5 TX1 TY1 Then lt lt 4 t B Pulsout 18 300 Elseif Menucheck 6 TX1 TY1 Then lt lt 4 zur Pulsout 18 300 Elseif Menucheck 7 TX1 TY1 Then lt lt 4 toG Pulsout 18 300 Elseif Menucheck 8 TX1 TY1 Then lt lt 4 10 439 Pulsout 18 300 Elseif Menucheck 9 TX1 TY1 Then lt lt 4 Pulsout 18 300 Elseif Menucheck 10 TX1 TY1 1 Then 0 P lisout 18 300 End If Locate 3 3 Print HEX4 I Return The final value I is stored as BCD code you can use BCD2BIN command to convert back to a binary number I I 292 SAMPLE 5 Let s try using CUCANVAS to make some menus To create the virtual keypad shown in the previous page it would take a longer time to just code it We can save ourselves time by using CUCANVAS Please run CuCANVAS and press Add Form button on the upper right hand corner Enter a desired name for your new form Here we
100. LOW Pulse Pulsout is pre made system s sub program sub pulsout pt as byte ln as word dim dll as integer reverse pt for dl1 0 to ln next reverse pt end sub 165 Put PUT channel data bytelength channel RS232 Channel 0 3 Data Data to send up to Long type value Bytelength Length of Data 1 3 This command sends data through the specified RS232 port For Data variables and constants can be used To send String please use Putstr command instead OPENCOM 1 19200 0 50 10 IMPORTANT DIM A AS BYTE The command x PN OPENCOM must be PUT 1 A 1 Send amp HAO 0xA0 used beforehand to RS232 Channel 1 Within CUBLOC the data is first stored in the send buffer CUBLOC BASIC Interpreter will automatically keep sending the data in send buffer until it s empty If the send buffer is full when PUT command is executed the PUT command will not wait for the buffer to flush In other words the data to send will be thrown away The command BFREE can be used to check the send buffer beforehand for such cases IF BFREE 1 1 2 THEN If send buffer has at least 2 bytes free POT IR x END IF BFREE checks for how much space the buffer currently has TIPS After using PUT or PUTSTR the function SYS 0 can be used to verify that the data has been stored in the send buffer OPENCOM 1 19200 0 50 10 PUTSTR 1 COMFILE DEBUG DEC SYS 0 If output is 7 all data has been stored in the send buffer P
101. ND 5V SCL SDA ase CSG 4S COMFILE As you can see above the front has 4 digit seven segment display and the back has two I2C connections After connecting the CSG to CUBLOC you can use the commands in the below table to easily and quickly display numbers you want Command Explanation Example Usage CSGDEC SlaveAdr Data Output decimal value CSGDEC O I CSGHEX SlaveAdr Data Output hex as decimal value CSGHEX 0 1 CSGNPUT SlaveAdr Digit Control digit places CSGNPUT 0 0 8 Data CSGXPUT SlaveAdr Digit Control digit places and output data CSGNPUT 0 0 9 Data as binary number 233 Csgdec Use CSGDEC command to print decimal values to the SGN Const Device cb280 SIN cS must be used before csgdec command b 8 Do Esgdec 07b csgdec command Delay 100 Io Jo sp db If b 0 Then b 200 Loop To use CSG commands SET I2C command must be used beforehand Slave Address Set the slave address of the CSG module at the back O0 to 3 can be set A total of 4 addresses can be set per I2C line pair CSG Dip switch DIP Switch Slave Address 123 L 7 i 0 128 ON BH 1 234 To display more than 4 digits use 2 CSG modules like shown below and set different slave addresses for each Mn m nag m ng Li L1 L1 LI LI L1 L1 LI Csgnput CSGNPUT slaveadr digit data slaveadr CSG module Slave Address digit Digit po
102. Ncd Variable NCD source Variable Variable to store results No String or Single Source source value 0 31 Nop NOP Offset OFFSET x y On int ON INTx GOSUB label x 0 to 3 External Interrupt Channel On ON LADDERINT GOSUB label ladderint On pad ON PAD GOSUB label On recv ON RECV1 GOSUB label On timer ON TIMER interval GOSUB label Interval Interrupt Interval 1 10ms 2 20ms 65535 655350ms 1 to 65535 can be used Opencom OPENCOM channel baudrate protocol recvsize sendsize channel RS232 Channel 0 3 Baudrate Baudrate Do not use variable 423 protocol Protocol Do not use variable recvsize Receive Buffer Size Max 1024 Do not use variable sendsize Send Buffer Size Max 1024 Do not use variable Out OUT Pin Value Pin I O pin number 07255 Value Value to be outputted to the I O pin 1 or 0 Output OUTPUT Pin Pin I O pin number 07255 Outstat Variable OUTSTAT Pin Variable Variable to store results No String or Single Pin I O Pin Number 07255 Overlay OVERLAY overmode overmode Logical Mode O or 1 and 2 xor Paint PAINT x y Pause PAUSE value Peek Variable PEEK Address Length Variable Variable to Store Result No String or Single Address RAM Address length Length of Bytes to read 1 4 Poke POKE Address Value Length Address RAM Address Value Variable to store results up to Long type value length
103. O t 1 ACTION DWMUL DO 1234H D2 1 The result of 123456H 1234H is stored as 4B60AD78H in D2 4B60H as e 391 WDIV DWDIV WDIV si s2 d DWDIV si s2 d Divide s1 by s2 and store the result in d and leftover in d 1 WDIV is for Word values and DWDIV is for Double Word Values Usable Relays F S C T D Constants s1 O O O 0 s2 O O O O d O O O ACTION WDIV D0 D2 D4 t 3 DWDIV DO D2 D4 Acron 392 t 1 5678H 1234H 7 0C335H 299H EH WOR DWOR WOR si DWOR si Do Logical operation OR on s1 and S2 and store result in d WOR is for Word values and DWOR is for Double Word Values Usable M F S C T D Constants Relays si o jo jO jO s2 O O O O d o O O START WMO 1200H D0 C l WMO 34H D1 t 1 ACTION WOR DO D1 D2 1 The result of above ladder diagram 34H 1234H 393 WXOR DWXOR WXOR si s2 d DWXOR si s2 d Store result of s1 XOR s WXOR is for logical operation XOR in WORD units whereas DWXOR is for DOUBLE WORD units Usable Relays P M F S C T D Constants s1 O O O O s2 O O O O d O O O START WMOV 1234H DO C 1 WMO OFFH D1 1 ACTION WOR DO0 D1 D2 1 The following is result of above LADDER DO D1 D2 When you want to invert specific bits you can use XOR logical operation 394 WAND DWAND
104. ON INTx will not be executed if the corresponding external interrupt occurs See also the SET INTx command which controls external interrupts to fire Set ONINTO On Set ONINT1 On Set ONINT1 Off Set ONINT2 Off Set ONINT3 On 187 Set OnLadderint SET ONLADDERINT On Off At power On Set OnLadderint is ON by default This command turns On or Off the ability to receive Ladder interrupts using global flags When the OnLadderint is set to On then an interrupt can be received using the On Ladderint command If the global is set to OFF then the code for On Ladderint will not be executed if the Ladder interrupt occurs See also the On Ladderint command CUBLOC studio d WA ZII 2 W_cubloc220 HHWladderlab4 1 cul T MEE BAE CBA SWM IO ESE EEFEPECRINA mm ME FI BASIC F2 LADDER Ladder Mnemonic real 1 ES ales ar F3 Fe F5 FB F F8 F9 Fir FE sor EJ INTON 3 00 le A 1 PLC I 1O Wizard END Insert iro i o Delete Undo Copy xd va Modified Program 1452 Bytes Data 1 y lt 2 CUBLOC studio EEE olx TSF MAE CHOIS BENE SES ge eiu dxiCAe mu B x FI BASIC F2 LADDER Ladder Mnemonic Const Device CB280 E Dim A As Integer riga NM R CE a On Ladderint Gosub FROMLADDER com 7 z 5200 y z none 7 Bos d Do Loop FROMLADDER Debug Dec A CR Incr A Return Close I Fix Right Side 188 S
105. OUCH NUMKEY Execute the Sub routine in INCLUDE file I 0 Do Loop GETTOUCH TX1 Getpad 2 TY1 Getpad 2 If Menucheck 0 TX1 TY1 1 Then lt lt 4 Pulsout 18 300 Elseif Menucheck 1 TX1 TY1 Then lt lt 4 a Pulsout 18 300 Elseif Menucheck 2 TX1 TY1 Then lt lt 4 aod Pulsout 18 300 Elseif Menucheck 3 TX1 TY1 Then lt lt 4 296 4 Pulsout 18 300 Elseif Menucheck 4 TX1 TY1 Then lt lt 4 a Pulsout 18 300 Elseif Menucheck 5 TX1 TY1 Then lt lt 4 6 Pulsout 18 300 Elseif Menucheck 6 TX1 TY1 Then lt lt 4 em Pulsout 18 300 Elseif Menucheck 7 TX1 TY1 Then lt lt 4 g Pulsout 18 300 Elseif Menucheck 8 TX1 TY1 Then x E Pulsout 18 300 Elseif Menucheck 9 TX1 TY1 Then lt lt 4 Pulsout 18 300 Elseif Menucheck 10 TX1 TY1 1 Then 0 Pulsout 18 300 End If Locate 3 3 Print HEX4 I Return End INCLUDE CT005 INC We must include include command at the end of the code Slightly different from other languages such as C but it works CUCANVS can downloat at www comfiletech com CUCANVAS is free ware 297 MEMO 298 439 ev Chapter 11 Application Notes NOTE 1 Switch Input Let s say for example you are developing some kind of a machine the first thing you need is a user interface Our task today is to build a machine that will receive input f
106. OxA8 0x68 0x78 0xB8 OxB9 0x79 OxBB 0x7B Ox7A OxBA OxBE Ox7E Ox7F OxBF Ox7D OxBD OxBC Ox7C 0xB4 0x74 0x75 OxB5 0x77 0xB7 OxB6 0x76 0x72 OxB2 OxB3 0x73 OxBl 0x71 0x70 0xBO 0x50 0x90 Ox91 _ 0x51 0x93 0x53 0x52 0x92 0x96 0x56 0x57 0x97 0x55 0x95 0x94 0x54 Ox9C Ox5C 0x5D 0x9D Ox5F Ox9F Ox9E Ox5E Ox5A Ox9A Ox9B Ox5B 0x99 0x59 0x58 0x98 Ox88 _ 0x48 0x49 0x89 0x4B Ox8B Ox8A Ox4A Ox4E Ox8E Ox8F Ox4F Ox8D Ox4D Ox4C Ox8C 0x44 0x84 0x85 0x45 0x87 0x47 0x46 0x86 0x82 0x42 0x43 0x83 0x41 Ox81 0x80 0x40 Dim clock As Byte OD ETC OTe Osta OD ee S cd Opencom 1 19200 3 500 200 Set Baud rate to 19 200 bps On Recvl Gosub GETMODBUS Data Receive Interrupt routine clock 0 On timer 10 Gosub CheckState Set Timer Interrupt every 100 ms Do Loop 267 GETMODBUS 268 If Blen 1 0 gt DataLength 1 Then If butter equal to data length a Blen 1 0 Store the buffer length in A Debug Cr Response in hex For ct 0 To DataLength rmsg ct Get 1 1 Store received data in B Debug Hex2 rmsg ct Next Calculate how many bytes in actual data This example receives 4 byte floating point data so divided by 4 DLength rmsg 2 4 Store received 4 bytes into floating point array high byte first then low byte ID rmsg 0 For ct 0 To DLength 1 Option 1 Store High Word then Low Word Result ct byte3 rmsg 5 ct 4 Result ct byte2
107. PD Function Relay can not be on the left side of the Ladder Logic When a Ladder Logic becomes complex simply divide them so you can see and understand them better as shown below P Pl P5 FA I C P2 Pb y P3 P7 P PI P5 IH 0 P P2 PE ri P3 P7 366 ladder instructions Ladder low level instructions Command Symbol Explanation LOAD H Contact A Normally Open LOADN H Contact B Normally Closed OUT i Output NOT NOT Inverse the result IP STEPSET Step Controller Output Step Set t1 1 STEPOUT Step Controller Output Step Out t1 MCS Master Control Start t1 MCSCLR Master Control Stop t1 DIFU Set ON for 1 scan time when HIGH signal received DIFD Set ON for 1 scan time when LOW signal received SETOUT Maintain output to ON t1 1 RSTOUT Maintain output to OFF t1 END End of Ladder Logic T GOTO Jump to specified label t1 LABEL Label Declaration t1 1 CALLS Call Subroutine t1 SBRT Declare subroutine t1 RET End Subroutine t1 367 High level instructions Command Parameter Explanation Data Transfer Commands WMOV s d Word Data Move DWMOV s d Double Word Data Move WXCHG s d Word Data Exchange DWXCHG s d Double Word Data Exchange FMOV s d n Data fill command GMOV s
108. PLC Embedded computer CUBLOC User Manual Version 2 0 0 Everything for Embedded Control COMFILE TECHNOLOGY Comfile Technology Inc www comfiletech com Manual Version 2 0 0 revised March 2006 Copyright 1996 2006 Comfile Technology TT 24 C U B LO SOUT 1 VIN 5 5V 1 2Vinp ut SINO 2 J Me VSS Core Module wedi 5 VSS 4 BE 21 VDD P n t ss Poos a 20L P15 HCNTO I O u Input only SCK_P1 6 191 P14_HCNT1 MOSI P2LJ 7 18 L P13 MISO P3 8 17 P12 PAL 9 16 O P11 TX CH 1 PWMO P5L 10 15H P10 RX CH 1 PWM P6L 11 EI 14 L P9 SDA CUNET PWM2 P7 12 13 P8 SCL CU NET SOUT 617 voo TX1 336 49 TTLTX1 SIN 18 vss RX1 340 50 TTLRX1 ATN O 19 RES AVDD 356 51 AVREF vss 920 nc NC 360 52 P48 SS PO 021 Pie ADCOP24 376 53 P31_ADC7 Input only SCK P 1 022 P17 ADC1_P25 380 54 P30_ADC6 MOSI P2 923 P18 ADC2P26 390 6 55 P29 ADC5 MISO P3 624 P19 PWM3 ADC3_P27 40 56 P28_ADC4 P4 0 25 P20 PWM4 INTO Pa7 O 57 P32 PWMO_P5 026 P21_PWM5_INT1 P46 O 58 P33 PWM1 P6 027 P2 N72 P45 O 59 P34 PWM2 P7 28 P23_INT3 P44 60 P35 CUNET SCL_P8 0 29 P15_HCNTO P43 61 P36 CUNET SDA P9 030 P14 HCNT P42 e 62 P37 P10 31 P13 P41 e 63 P38 P11 932 P12 P40 64 P39 w Vdd TX1 TtITX1 Vss RX1 TtIRX1 RES CB290 AVdd AVref VBB Vdd Vss P8
109. PSET 80 1 B t 1 STEPSET S0 2 t 1 STEPSET S0 0 t 1 P This command STEPSET will turn ON the current step if the previous step was ON Since it operates in one step at a time we call it STEPSET For example in the above ladder diagram when P1 turns ON S0 2 is turned ON if SO 1 is turned ON S0 1 is turned OFF When P2 turns ON S0 0 is turned ON and other steps are turned off S0 0 or step O is used for reset Otherwise STEPSET will move in order PO P1 S0 0 n 80 1 S0 2 375 STEPOUT This command STEPOUT will only 1 step to be enabled at all times The last step to be turned ON will be the step to be enabled at any given moment PD STEPOUT S0 1 t 1 P1 STEPOUT S0 2 t 1 P2 STEPOUT S0 0 y 1 When P1 turns ON S0 2 turn ON When PO turns on SO 1 turns ON A step will be kept on until another step is turned ON Po MEENNENEN o EN h po S0 0 so1 rr S0 2 376 TON TAON When input turns ON timer value is decremented and output turns on when timer is done There are two kinds of timers one that works in 0 01 second units and another that works in 1 second units Type of Timer Time units Maximum Time TON 0 01 sec 655 35 sec TAON 0 1 sec 6553 5 sec START TON 10 100 1 START TAON T1 100 Hr 1 There are 2 parameters with commands TON TAON For the first paramet
110. RTU Currently only ASCII supported slaveaddress Slave Address 1 to 254 Set SET OUTONLY On Off outolny Set SET PAD mode packet buffersize Pad mode Bit Mode 07255 packet Packet Size 17255 buffersize Receive Buffer Size 1 255 Set SET RS232 channel baudrate protocol rs232 channel RS232 Channel 0 3 Baudrate Baudrate Do not use variable protocol Protocol Do not use variable Set SET UNTIL channel packetlength untilchar until channel RS232 Channel 0 3 packetlength Length of packet 07255 untilchar Character to catch 425 Set SET INTx mode Int x O to 3 External Interrupt Channel mode O Falling Edge 1 Rising Edge 2 Changing Edge Set SET ONGLOBAL On Off Onglobal Set SET ONINTx On Off onint Set SET ONLADDERINT On Off onladderint Set SET ONPAD On Off onpad Set SET ONRECVO On Off onrecv SET ONRECV1 On Off Set SET ONTIMER On Off ontimer Shiftin Variable SHIFTIN clock data mode bitlength Variable Variable to store results No String or Single Clock Clock Port 0 255 Data Data Port 0 255 Mode 0 LSB First Least Significant Bit First Afer Rising a 1 MSB First Most Significant Bit First After Rising x 2 LSB First Least Significant Bit First After Falling HS 3 MSB First Most Significant Bit First After Falling S 4 LSB First Least Significant Bit First Before Rising in 5 MSB First Mos
111. S In MODBUS there is Master and Slave mode The Master provides data while the Slave receives the data The slave can only respond to master and cannot communicate on its own Each slave has a unique address called Slave Address The Master using those Slave Addresses can talk to one of the slaves at a time For 1 to 1 connections RS232 can be used For 1 to N connections RS485 can be used The master sends messages in units of Frames Each Frame contains the Slave address command Data Error Checksum codes Slave receives a Frame and analyzes it When responding to the Master Slave also sends in Frames In other words MODBUS send and receive can be seen as composed of Frames that are sent and received There are two types of MODBUS ASCII and RTU RTU type can be implemented by using less bytes in the communication ASCII use LRM for error checking and RTU uses CRC The next is how ASCII and RTU are used Field Hex ASCII RTU Header colon None Slave Address 0x03 03 0X03 Command 0X01 01 0X01 Start Address HI 0X00 00 0X00 Start Address LO 0X13 13 0X13 Length HI 0X00 00 0X00 Length LO 0X25 25 0X25 Error Check LRC 2 Bytes CRC 2 Bytes Ending Code CR LF None Total Bytes 17 Bytes 8 Bytes 254 ASCII type uses a colon to start and ends with CR or LF START SLAVE ADR FUNCTION DATA LRC END COLON 2 Bytes 2 Bytes n Bytes 2 Bytes CR LF RTU req
112. S A B SUM RES End Function Calculations can be done within conditional statements such as If While etc IF A 1 100 THEN GOTO ABC IF A 1 100 AND B 100 20 ORC 3 THEN GOTO ABC Multi dimension arrays are supported CUBLOC supports multi dimension arrays including character arrays Up to 8 D arrays are supported and character arrays only allow one dimensional arrays DIM A 100 10 20 AS BYTE 60 Hardware RS232 Communication are Supported CUBLOC supports hardware RS232 communication meaning it does not conflict with real time processing Conditional Statements are supported CUBLOC BASIC supports SELECT CASE and DO LOOP conditional statements A graphic LCD library is provided CUBLOC provides a complete graphic LCD library for GHLCD Drawing boxes lines circles and graphic commands are easily implemented in few lines of code Various Communication Protocols are supported CUNET Display Peripherals such as LCD RS232 2 channel MODBUS HMI and Touch screen Protocol I2C I2C commands supported I2CREAD I2CWRITE SPI SPI commands supported SHIFTIN SHIFTOUT PAD Keypad touchpad supported Advanced Basic Language is Comparable to C Language include support define support if ifdef endif conditional compile support Incr Decr commands same function as C s Pointers allowed PEEK POKE and MEMADR String Arrays 1 Dimension 61 Simple BASIC prog
113. SCK P2 7 I O ADC2 SPI MOSI P3 8 1 0 Block 0 ADC3 SPI MISO P4 9 IO ADC4 P5 10 IO PWMO ADC5 P6 11 IO PWM1 ADC6 P7 12 I O PWM2 ADC7 P8 13 I O CuNET SCL P9 14 I O CuNET SDA P10 15 I O RS232C Channel 1 RX P11 16 1 0 Block 1 RS232C Channel 1 TX P12 17 I O P13 18 I O P14 19 IO High Count channel O P15 20 I O High Count channel 1 VDD 21 I O 5V Output Input RES 22 IN RESET Input LOW signal resets VSS 23 IN GROUND VIN 24 IN 5 5Ve12V Input Power 35 SIN SOUT ATN are connection pins to the PC XPORT for DOWNLOAD DEBUG and MONITORING All CUBLOC models have SOUT SIN ATN pins and you can connect to the PC serial cable as shown below VIN VSS RES VDD P15 P14 P13 P12 P11 P10 P9 P8 Other pins are mostly I O ports The user may select which ports pins to use as INPUT or OUTPUT When set to INPUT the pin enters a HIGH impedance state whereas when set to OUTPUT the pin ether outputs LOW or HIGH The maximum current coming out of the output ports is 25mA The user is free to choose which I O ports he she will use for which purpose such as AD PWM etc 36 Supplying power to the CB220 CB220 has an internal 5V power regulator that accepts anything between 5 5 12V of power It will produce a stable 100mA 5V When using the internal regulator voltage can be inputted to pin 24 and 5V will output on pin 21 If 5V is used for power the user may simply connect to pin 21 If your application re
114. SET ONINTX e 187 426 SET ONLADDERINT 188 426 SET ONPAD 189 426 SET ONRECY 190 426 SET ONTIMER 191 426 Set Outonly On 43 SET PAD insi 180 425 Set Rs232 spionov oisg 183 425 SET UNTIL e 184 426 SETOUT s 1 eiiis 371 Seven Segment display 32 Sharing Data assecc 92 SHIFTIN eseeee 192 426 SHIFTOUT sinrang 193 426 Mus 96 SIN 36 Single nonet 69 SOUNS 5 ia 314 SOU Tar ata ta tds 36 special relays 401 SOR ccoo aoi knina 96 step control c occoccnnccncononnnnoss 375 STEPOU Ti 376 STEPSET sein 375 SITIDng ina 70 STRING exer 100 Study board sesses 31 STYbE oinnes 220 426 ciu 194 426 T TADIN rreri iin 105 195 427 A sae ies aaea atata 96 TAO rin cia 378 TAIN us dernieres habian 377 TEP doves fos n 26 Temperature es 305 Text Editor s 54 text layer size sss 213 TIME d aiia 196 427 Time Chart Monitoring 349 TIMESED cusco cosneg ncaes 197 427 TO ta ii 378 TON erc ERE END 377 TOUCH Pad eeu 280 touchpad eeenn 273 Turbo Scan Time 363 U UDELAY lise 199 315 427 UDB sd 26 UP Counter ssesse 379 UP DOWN Counter 380 Usepin 200 359 427 UTMAX iine testes 201 427 V WAL ica o 101 VALS Gin
115. SUMAB 100 200 AGL IAG Y Call subroutine and store return value Debug Dec K cr End Function SUMAB A AS INTEGER B AS INTEGER As Integer SUMAB A B End Function 65 Subroutine Position Subroutines must be created after the main program To do this simply put End at the end of your main program like shown here End is only required if you have subroutines Dim A As Integer LOOP1 A A T I Debug DP A CR DELAYTIME Goto Loopl End End of main program Sub DELAYTIME Dim K As Integer For K 0 To 10 Next End Sub Sub and Function subroutines come after the End Gosub subroutines must be within the main program like shown here DimAAs Integer Gosub ABC ABC End Sub DEF B as Byte End Sub Function GHI C as Byte End Function End command is used to differentiate between BASIC main program and the subroutines END command used in Ladder Logic is to indicate the end of Ladder Logic 66 Subroutine Parameters and Return Values Function may use any data type as parameters and return values Dim A 10 As Integer Function ABC A AS Single as Single Return Single value End Function Function ABC A AS String 12 as String 12 gt value End Function Return String Function ABC A AS long Long value as a parameter When return value is not declared Long will be used as return value End Function y Y Exceptions includes using array
116. Single mux AD input pin Combination MUX 0721 Eeread Variable EEREAD Address ByteLength Variable Variable to store result No String or Single Address 0 4095 ByteLength Number of Bytes to read 1 4 Eewrite EEWRITE Address Data ByteLength Address 0 to 4095 Data Data to write to EEPROM up to Long type values ByteLength Number of Bytes to write 1 4 Ekeypad Variable EKEYPAD portblockIn portblockOut Variable Variable to store results Returns Byte PortblockIn Port Block to receive input 0715 PortblockOut Port Block to output 0715 Ellipse ELLIPSE x y ri r2 Elfill ELFILL x y r1 r2 Font FONT fontsize efontwidth fontsize 0 8 Font Selection efontwidth O fixed width 1 variable width Freqout FREQOUT Channel FreqValue Channel PWM Channel 0715 FreqValue Frequency value between 1 and 65535 Get Variable GET channel length 420 Variable Variable to store results Cannot use String Single channel RS232 Channel 0 3 length Length of data to receive 1 4 Getstr Variable GETSTR channel length Variable String Variable to store results channel RS232 Channel length Length of data to receive Geta GETA channel ArrayName bytelength channel RS232 Channel 0 3 ArrayName Array to store Received data No String or Single Bytelength Number of Bytes to store 1765535 Glayer GLAYER layernumber Layernumber S
117. Supply 2 RXO DOWNLOAD RX RS232 RX 3 TXO DOWNLOAD TX RS232 TX 4 P18 I O port 5 P19 PWM3 1 O port 6 P20 PWMA INTO 1 O port 7 P21 PWM5 INT1 T O port 8 P22 INT2 1 O port 9 P23 INT3 1 O port 10 PO SS 1 O port 11 P1 SCK T O port 12 P2 MOSI T O port 13 P3 MISO 1 O port 14 P4 1 O port VSS RO R1 R2 15 PS PWMO T O port 16 P6 PWM1 1 O port 17 P7 PWM2 T O port 18 P16 I O port 19 P17 T O port 20 RESET Reset Low active 21 VDD Power supply 22 VSS Ground 23 XTALOUT Xtal output 24 XTALIN Xtal input 25 P8 CUNET_SCL O port 26 P9 CUNET SDA O port 27 RX1 RS232 CH1 RX RS232 Channel 1 Rx 28 TX1 RS232 CH1 TX RS232 Channel 1 Tx 29 P12 O port 30 P13 O port 31 P14 HCOUNTO O port 32 P15 HCOUNT1 O port 33 P10 O port 34 P11 O port 35 P40 O port 36 P41 O port 37 P42 O port 38 P43 O port 39 P44 O port 40 P45 O port 41 P46 O port 42 P47 O port 43 P48 O port 44 P39 O port 45 P38 O port 46 P37 O port 47 P36 O port 48 P35 O port 49 P34 O port 50 P33 O port 51 P32 O port 52 VDD Power supply 53 VSS Ground 54 P31 ADC7 O port 55 P30 ADC6 O port 56 P29 ADC5 O port 57 P28 ADC4 O port 58 P27 ADC3 O port 59 P26 ADC2 O port 60 P25 ADC1 O port 61 P24 ADCO O port 62 AREF Ref for ADC 63 VSS Ground 64
118. T D2 1N414B 12V LEVEL gt lan 3X3 T our Hiu 12iNHL IR2IN R2QUT WAY232C 45V LEVEL ATN PIN gt RES lt RES TILDA TL TE gt 1 i i i i 1 1 45V i i a 1 1 o i s 1 ES 8 i CI oo 233 i z D FH 3 34 i i f t i TE Les AE Cu 1 047uF le 33uF i i i I Ml i i The End 412 Appendix F CB280CS CUBLOC CHIP SET CB280CS COMFILE TECHNOLOGY www comfiletech com The CB280CS has exactly the same features as a regular CB280 chip except it s in a chipset format By using the CB280CS the useris able to solder the chi pset directly onto their PCB This will lower y our overall production cost while integrating CB280 into your product seamlessly Since this chipset has same features as aregular CB280 we recommend you develop your applications on the CB280 before going into production with the chipset version CB280 Chipset version for mass production and OEMs All features as a regular C B280 80KB Flash Program Memory Basic Data Memory 2KB LADDER Data Memory 1KB EEPROM 4KB I O Ports 49 RS232 Channels 2 Including Download Package 64PIN QFP 8PIN SOIC Note P18 PWM3 P19 PWI INTO P20 PWMS INTI P21 NTZ P22 NT3 P23 ss Po Sox P1 MOS P2 MISO P3 Pa PWND P5 PWMI Pe
119. T Pin Variable Variable to store results No String or Single Pin I O Pin Number 0 255 Read the current outputted value for the specified pin This command is different from IN command in that it reads the status of output not input DIM A AS BYTE A OUTSTAT 0 Read from Pin 0 and store the current status in A Pause PAUSE value Exact same function as DELAY 163 Peek Variable PEEK Address Length Variable Variable to Store Result No String or Single Address RAM Address length Length of Bytes to read 1 4 Read specified length of data from RAM Address Poke POKE Address Value Length Address RAM Address Value Variable to store results up to Long type value length length of bytes to read 1 4 Write specified length of data to the RAM Address Const Device CB280 Dim F1 As Single F2 As Single F1 3 14 Eewrite 10 Peek Memadr F1 4 4 Poke Memadr F2 Eeread 10 4 4 Debug Float F2 CR 164 Pulsout PULSOUT Pin Period Pin Output Pin 0 255 Period Pulse Period 1 65535 This is a SUB library that outputs a pulse To create a High pulse the output pin must be set to LOW beforehand To create a Low pulse the output pin must be set to HIGH before hand If you set the Pulse Period to 10 you will create a pulse of about 2 6mS Likewise a Pulse Period of 100 will give you about 23mS pulse LOW 2 HIGH 2 PULSOUT 2 100 23mS HIGH Pulse PULSOUT 2 100 23mS
120. T0 100 1 FT 1 If you press INS button from the current position a blank cell is inserted and items on the right are moved one cell right START TON T0 100 1 tr 1 Rung Copy When same style of rung is needed you can press CTRL A and it will copy the above rung except text will not be copied START TON T0 100 1 NN e 1 hi EE 345 Comments You can enter comments by adding an apostrophe THIS IS SAMPLE PROGRAM PO P3 u You can use a semi colon to display to the next line For example This is Sample Program Date 24 Sep 2007 Comfile Technology THIS IS SAMPLE PROGRAM DATE 24 SEP 2007 COMFILE TECHNOLOGY PO P3 pu 346 LADDER BLOCK COPY and PASTE You can make a selection of a block to copy and paste to different parts of the LADDER CUBLOC studio c Wcubloc_test fu3 1018 cul Eile Edit Device Run Setup Help B ea d XxX cgie muB F1 BASIC F2 LADDER Ladder Mnemonic PLC all I ES ES E ET Z4 tx AFO 10 HO 10 F3 F4 ES F6 F F8 Fg FH F12 NOT END Insert Delete Undo Copy Wizard P31 Mo M2 WORK_OFF TOGLE M2 MI WORK ON TOGLE MPG ON INPUT M3 MPG ON OFF TOGLE M5 MPG ON LED P40 23 E Modified Program 154 Bytes Data 1001 Use the mouse to click and drag to select the desired copy area Press CTRL C to copy and CTRL V to
121. To 0 Step 1 This will reach 1 as last step Debug Dp LK CR Next 132 Freqout FREQOUT Channel FreqValue Channel PWM Channel 0 15 FreqValue Frequency value between 1 and 65535 Output desired frequency to the desired PWM channel Please make sure to specify the PWM channel not I O port number For CB220 and CB280 ports 5 6 and 7 are PWM Channel 0 1 and 2 respectively The following is a basic chart showing the different FreqValues and corresponding frequencies 1 is for the highest possible frequency and 65535 is for the lowest possible frequency 0 does not produce any output FreqValue Frequency FreqValue Frequency 1 1152 KHZ 200 11 52 KHZ 2 768 kHz 1000 2 3 KHZ 3 576 KHz 2000 1 15 KHz 4 460 8KHz 3000 768 Hz 5 384 KHz 4000 576 Hz 10 209 3 KHz 10000 230 Hz 20 109 7 KHz 20000 115 2 Hz 30 74 4 KHz 30000 76 8 Hz 100 22 83 KHz 65535 35 16 Hz You can also calculate the FreqValue to use by using the following formula FreqValue 2304000 Desired Frequency Before using this command please set the specified PWM pin to output mode To stop PWM you can use the command PWMOFF The following is an example Const Device cb280 Dim i As Integer Low 5 Set pin 5 to low and output i 1 Fregout 0 10 Produce a 209 3Khz wave Do Infinite loop Loop Since Freqout uses the same resources as PWM there are a couple of rest
122. UART H W RS232C ports 2 Channels RS232C port PC interface RTC chip included CB290 Model Comparison Chart 34 Feature CB220 CB280 CB290 Program 80KB 80KB 80KB Memory Data Memory BASIC 2KB BASIC 2KB BASIC 24KB LADDER 1KB LADDER 1KB LADDER 4KB Battery N A N A Available Backup EEPROM 4KB 4KB 4KB I O ports 16 49 2 91 2 Package 24 pin DIP 64 pin Module 108 pin Module ADC 8 Channel 8 Channel 8 Channel PWM 3 Channel 6 Channel 6 Channel External None 4 4 Interrupt HIGH COUNT 2 Channel 2 Channel 2 Channel INPUT RTC None None Yes Operation 40 60mA 40 60mA 70 100mA current Operation 40 C 125 C 40 C 125 C 40 C 125 C Temp CB220 CB220 is comes as a 24pin DIP type package internal 5V power regulator It has 16 I O ports and an sour d 24H VIN 5 5V 12Vinput ES BI is Me 2 ATN 3 EM 22 RES vss O0 4 21H VDD SS PO 15 20 P15_HCNTO Inputonly SCK P1L 6 19 L1 P14 HCNT1 MOSI P2 7 s P13 MISO_P3 8 17 P12 P409 16H P11_TX CH1 PWMO P5 E 10 151 P10 RX CH1 PWM1 P6 O 11 14H P9_SDA CUNET PWM2_P7 O 12 13H P8 SCL CUNET Name Pin I O Port Block Explanation SOUT 1 OUT DOWNLOAD SERIAL OUTPUT SIN 2 IN DOWNLOAD SERIAL INPUT ATN 3 IN DOWNLOAD SERIAL INPUT VSS 4 POWER GROUND PO 5 I O ADCO SPI SS P1 6 Input ADC1 SPI
123. UBLOC please use the GHB3224C model as you have one more RS232 port free to use for something else GHB3224C CuNET setup settings Set Display 1 0 1 50 GHLCD CUNET Set Address to 1 Send buffer to 50 Warning CUNET Slave address and Display Slave address must match Display Slave address can be set with the DIP switch 214 Cls CLS Initialize the LCD and clear all layers Set a little bit of delay for the LCD to initialize CLS DELAY 200 Clear CLEAR layer Erase the specified layer s CLEAR 1 Erase Text Layer 1 CLEAR 2 Erase Graphic Layer 2 CLEAR 0 Erase all layers Same as CLS Csron CSRON Turn Cursor ON Default if OFF Csroff CSROFF Turn Cursor OFF Locate LOCATE x y X X axis position of LCD Y Y axis position of LCD Set the position of the text layer After the CLS command the LCD defaults to position 0 0 LOCATE 1 1 Move cursor to 1 1 PRINT COMFILE 215 Print PRINT String Variable String String Variable When using variables constants String representation of the variable constant will be printed Print characters on the text layer To print characters to the graphic layer GPRINT command can be used LOCATE 1 1 Move to position 1 1 PRINT COMFILE DEC I PRINT Layer LAYER layer1mode layer2 mode layer3 mode Layer1mode Set Layer 1 mode 0 off 1 on 2 flash Layer2mode Set Layer 2 mode 0 off 1 on 2 flash Layer3mode Se
124. UDELAY commands to set the I O pin to HIGH and LOW The following example shows how to make an alert sound with a regular I O port P4 315 lt Filename playport cul gt lt END gt 316 NOTE 6 Step Motor Pulse Generation To enable a step motor we will create a simple program that outputs pulses to the motor driver MOTOR DRIVER Like the picture shown above a motor driver will be placed in between CUBLOC and the motor When the motor driver receives pulses from CUBLOC it will turn the MOTOR by 1 8 degrees for every pulse This is not the case with all motor drivers but you can apply this type of motor pulse generation to other applications lt Filename stepout cul gt Const Device CB280 Low 4 Do STEPOUT 4 2 1000 Loop End Sub STEPOUT PN As Byte FR As Integer LN As Long Dim SJ As Long For SJ 0 To LN Reverse PN Udelay FR Reverse PN Udelay FR Next End Sub Here we will explain how to use the STEPOUT sub function STEPOUT has 3 parameters PN FR and LN 317 The PN is for the port number used Please make sure to use an output port The second parameter FR is the length of the pulse The last parameter LN is for the number of pulses to send PN PORT Number FR Pulse Length 0 65535 LN Number of Pulses 072147483647 STEPOUT 2 50 9 Generate 9 pulses with length of 50 STEPOUT 2 20 30 Generate 30 pulses with length of 20
125. Wizard PC Interface Setup Editor Environment Setup Studio Options Firmware Download Explanation Automatic BASIC source code generation for Ladder Logic Setup the RS232 COM PORT for Download Monitor Select COM1 through COM4 Setup Editor Environment options for BASIC text editor CUBLOC Studio Options Download Firmware to CUBLOC CORE Please use this to download firmware to CUBLOC CORE manually 57 MEMO Chapter 4 CUBLOC BASIC Language IMPORTANT You must declare the device being used before using BASIC or LADDER Below is an example of declaring CUBLOC CB220 module CONST DEVICE CB220 Use CB220 This should be the first line at the start of your program When this command is not used CB220 model will be chosen as default CONST DEVICE CT1720 Use CT1720 CONST DEVICE CB280 Use CB280 59 CUBLOC BASIC Features Interface PC with RS232C Port CUBLOC BASIC uses RS232 port to interface with the PC You also have option of using it to connect to XPORT and use monitoring downloading via the internet CUBLOC BASIC supports functions and sub routines Like C language the user is able to create sub routines and functions to lessen the complexities of their programs By being able to use sub routines and functions it is now possible to simple copy amp paste for new programs instead of starting everything from scratch Function SUM A As Integer B As Integer As Integer Dim RES As Integer RE
126. Word Access WF WFO WE7 16 bit 1 Word Relay F Word Access WPO contains PO through P15 PO is located in the LSB of WPO and P15 is located in the MSB of the WPO These relays are very useful to use with commands like WMOV 355 CB290 Relay The following is a chart that shows CB290 relays CB290 has more M C T and D relays than CB220 and CB280 Relay Name Range Units Feature Input Output Relay PO P127 1 bit Interface w External P devices Internal Relays M MO M1023 1 bit Internal Relays Special Relay F FO F127 1 bit System Status Timer T TO T255 16 bit 1 Word For Timers Counter C CO C255 16 bit 1 Word For Counters Step Enable S S0 S15 256 steps 1 For Step Enabling Byte Data Memory D D0 511 16 bit 1 Word Store Data P M and F relays are in bit units whereas T C and D are in word units To access P M and F relays in word units you can use WP WM or WF Relay Name Range Units Feature WP WPO 7 16 bit 1 Word Relay P Word Access WM WMO WM63 16 bit 1 Word Relay M Word Access WF WFO WF7 16 bit 1 Word Relay F Word Access WPO contains PO through P15 PO is located in the LSB of WPO and P15 is located in the MSB of the WPO These relays are very useful to use with commands like WMOV WPO eis Po WP1 esi ets WP2 es e WP3 ess pas 356 Ladder symbo
127. ally placed next to each other When either PO or P1 is ON P5 will be ON The following is an example of BLOCK AND and BLOCK OR BLOCK AND PD P2 T d P5 EA 0 Po P2 P5 mi PI P3 H BLOCK OR 370 SETOUT RSTOUT SETOUT will turn ON P5 when PO turns ON and will keep P5 ON even if PO turns off On the other hand RSTOUT will output OFF when P1 is ON and will keep P5 off even when P1 turns OFF PO SETOUT P5 r J P1 RSTOUT P5 C J Relays that can P M F S C T D Constant be used s SETOUT O O O RSTOUT O O O 371 DIFU DIFD This command DIFU turns ON the output 1 scan time when input goes from OFF to ON Conversely DIFD turns OFF the output 1 scan time when input goes from ON to OFF DIFU PO A P5 AAA P1 P6 26 ML Em P5 md nad SCAN P6 gt j 1 SCAN 372 MCS MCSCLR The command MCS and MCSCLR allow for the LADDER LOGIC between MCS X and MCSCLR X to be executed when turned ON If MCS is OFF the LADDER LOGIC in between MCS X and MCSCLR X will not be executed By using this command the user is able to control a whole block of LADDER LOGIC MCS 0 7 MO MCS 0 t 1 MCSCLR 0 t 1 In the above example when MO turns ON LADDER LOGIC between MCS 0 and MCSCLR are executed normally If MO is OFF P5 and P6 will turn OFF MCS number can be used from O to 7 MCS number should be used from 0 increasingly to
128. angent values CUBLOC uses radians as units Use SINGLE for most precise results A ASIN B Return Arc Sine value A ACOS B Return Arc Cosine value A ATAN B Return Arc Tangent value SINH COSH TANH Return Hyperbolic Sine Hyperbolic Cosine and Hyperbolic Tangent values A SINH B Return Hyperbolic Sine value of B A COSH B Return Hyperbolic Cosine value of B A TANH B Return Hyperbolic Tangent value of B SQR Return Square Root value A SQR B Return Square root value of B EXP Return E A EXP X Return E LOG LOG10 Return LOG or LOG10 value A LOG B or A LOG10 B Max s Tips For natural logarithm Ln simply do A Log B Log Exp 1 ABS Return Absolute value for long type Dim A As Long B As Long B 1234 A ABS B Return B Debug Dec A Print 1234 96 FABS Return Absolute value for Single type Dim A As Single B As Single B 1234 0 A FABS B Return B Debug Float A Print 1234 00 FLOOR Round down to the whole number Dim A As Single B As Single B 3 14 A FLOOR B FLOOR 3 14 gives 3 Debug Float A Print 3 0 97 Type Conversion Type conversion can be used to convert the variable to desired bit representation HEX Converts the variable to hex 16 bit HEX8 means to convert to 8 decimal places 1 to 8 can be used for decimal places DEBUG HEX A if A is 123ABC 123ABC is printed DEBUG HEX8 A if A is 123ABC bb123ABC is printed b is a blank space in th
129. areas inversed BOXFILL 10 20 200 100 0 Draw and fill box Circle CIRCLE x yr Draw a circle with center of circle at x y and r as radius CIRCLE 200 100 50 Draw circle 222 Circlefill CIRCLEFILL x y r Draw a circle and fill with center of circle at X y and r as radius CIRCLEFILL 200 100 50 Draw and fill circle Ellipse ELLIPSE x y r1 r2 Draw an ellipse with center of circle at x y and r1 as horizontal radius and r2 as vertical radius ELLIPSE 200 100 100 50 Draw ellipse EIfill ELFILL x y r1 r2 Draw an ellipse and fill with center of circle at x y and rl as horizontal radius and r2 as vertical radius ELFILL 200 100 100 50 Y Draw and fill ellipse Glocate GLOCATE x y Locate new position for the graphic layer GLOCATE 128 32 locate new position Gprint CUTOUCH o CUTOUCH 239 22 Ww Gprint GPRINT string Print String on the graphic layer You have more freedom in the graphic layer as you can use GLOCATE to specify exact position Then CUBLOC IS FASTER you can use this command GPRINT to print a string at that location GPRINT CUBLOC IS FASTER CR Print String and go to next line CR Dprint DPRINT string DPRINT is similar to GPRINT except it will over write the current graphics DPRINT WE LOVE CUBLOC CR Print String and go to next line 0 319 WE LOVE CUBLOC This command will allow a much faster printing speed as it will simpl
130. arise it becomes almost impossible to update the MCU In comparison Comfile s CUBLOC will cut the users development time as much as 20 times and provide a MCU like chip that is upgradeable through RS232 cable or even through the internet by using an XPORT By being able to provide a way to upgrade the final product the value of your final product is much more than what you thought If you have experience programming with MCUs we guarantee you that development of your final product will be much easier You will be able to spend more time designing the features of your final product instead of spending hours and hours in front of a computer flash programmer target board target board MCU engineer s desk CUBLOC engineer s desk 28 CUBLOC s Internal Structure BASIC LADDER Interpreter Processor LADDER Program Memory BASIC Program Memory O FLASH e SRAM 1KB 4KB Data Memory o SRAM o FLASH 2KB 24KB 80KB BASIC LADDER Data Memory The BASIC interpreter contains a Flash memory for user s BASIC programs LADDER processor also has a Flash memory for user s LADDER program I O ports are shared among BASIC and LADDER allowing free access to both BASIC data Memory can only be accessed by BASIC interpreter while LADDER data memory can be accessed by both BASIC Interpreter and LADDER Processor BASIC program memory 1 and LADDER 2 share the same Flash Memory The total available mem
131. as SDA pin 9 as SCL I2cstart If I2cwrite amp H10100000 1 Then ERR PROC Chip Address 0 If I2cwrite ADR BYTE1 1 Then ERR PROC ADDRESS WRITE If I2cwrite ADR LOWBYTE 1 Then ERR PROC If I2cwrite DATA 0 Then ERR PROC 1 Byte WRITE I2cstop Delay 5 Wait until WRITE is done Next we will look at how to read 1 byte from the EEPROM Although it might look more complex than writing 1 byte we will soon find out that they are very similar 249 R W Repeated Start R W NoAck y y M y S CONTROLBYTE O A HIGHADDRESS Aj LOWADDRESS A S CONTROLBYTE 1 A DATA X P S Start z A Acknowledge Read Point P Stop Read Point is where the actual DATA will be read from the EERPOM The front part of the command is for setting the address to read data Set 126 9 9 I2cstart If I2cwrite amp H10100000 1 Then ERR PROC Chip Address 0 If I2cwrite ADR BYTE1 1 Then ERR PROC ADDRESS WRITE If I2cwrite ADR LOWBYTE 1 Then ERR PROC estare Repeated Start If I2cwrite amp H10100001 1 Then ERR PROC Read command DATA I2cread 0 Result store in DATA I2cstop And now we will look at how to read multiple data from the EEPROM Without using the STOP command we can keep reading from the EEPROM since it automatically increments its address In this way we can set the address to read from only once and then read the rest of the data much faster Set 120 8 9
132. ase and lowercase letters They will all be processed as uppercase character For example define ALPHA O and define alpha 0 are both considered the same 85 Conditional A conditional is a directive that instructs the preprocessor to select whether or not to include a part of code before compilation Preprocessor conditionals can test arithmetic expressions or whether a name is defined as a macro or both simultaneously using the special defined operator Here are some reasons to use a conditional W A program may need to use different code depending on the module it is to run on In some cases the code for one module may be different on another module With a preprocessing conditional a BASIC program may be programmed to compile on any of CUBLOC CuTOUCH modules without making changes to the source code W If you want to be able to compile the same source file into two different programs One version might print the values of data for debugging and the other not if constant endif The preprocessor directive if will compare a constant declared with CONST to another constant If the if statement is true the statements inside the if endif block will be compiled otherwise statements will be discarded Const Device CB280 Delay 500 Device only returns the decimal number If Device 220 Debug CB220 module used endif The above example shows how depending on the module of CUBLOC CuTOUCH you can decided to
133. at exit This means that the Local Variables will use the Data Memory and then free it for other resources Local Variables may only be referred to or used inside the Sub or Function On the other hand Global variables may be used in all parts of your code Main Program Global Variable Sub ProgramA Sub Program B Local Variable Local Variable Dim A As Integer Declare A as Global Variable LOOP1 A A 4 1 Debug Dp A CR y Display A on Debug screen DELAYTIME Call Sub DELAYTIME Goto LOOP1 End End of Main Program Sub DELAYTIME Dim K As Integer Declare K as Local Variable For K 0 To 10 Next End Sub In the program above A is declared as Global Variable and K is declared as Local Variable A can be used anywhere in your code but K may only be used inside the subroutine DELAYTIME Arrays may not be used for Local Variables Arrays must be declared as Global Variables 64 Calling subroutines Once the subroutine is created you can use them like a regular command For Sub you do not need parenthesis around the parameters For multiple parameters use a comma to separate them The example shows how this is done Y DELAYTIME 100 Call subroutine End Sub DELAYTIME DL As Integer Dim K As Integer Declare K as Local Variable For K 0 To DL Next End Sub For Function you need parenthesis around the parameters Parenthesis is required even when there is no parameters Dim K As Integer K
134. ata Input AVREF 51 ADC Reference Voltage 39 How to supply power to the CB280 The CB280 does not have a 5V regulator you must provide your own 5V power like shown below DC5V sout 10 17 VDD T TTLTXY SIN 20 1s vss RX1 TTLRX1 ATN 30 19 RES AVDD AVREF vss 46 020 wc N C P48 Po 5 21 Pro p24 Sa P1 6 022 P17 P25 P30 P2 7 23 pis P26 P29 P3 80 24 Pio P27 P28 P4 90 25 P20 P47 P32 P5 106 26 p21 P46 P33 P6 10 27 p22 P45 P34 P7 120 28 P23 P44 P35 P8 130 29 P15 P43 P36 P9 140 30 Pra paa P37 P10 150 631 P13 P41 P38 P11 16e 32 P12 P40 P39 Pin 20 and 36 are not used please DO NOT CONNECT anything 40 CB290 CB290 is in a 108 pin module package of which 91 pins can be used as I O ports It has a battery backup able 28KB of data memory and RTC CB290 does not have an internal 5V regulator Of the I O ports 32 ports are Output only 32 ports are Input only and rest can be set as desired by the user ww 10021 410061 20022 420062 30023 43 0063 140024 440064 50025 450065 60026 46 0 066 70027 80028 9ee29 100630 10031 120032 130033 140034 150035 1600 36 1700 37 180038 190039 200040 60 80 95 81 The pin numbers below are categorized by features not by pin numbers Name Pi
135. ate 15 6 Print DECS I mcr Delay 200 Loop GETTOUCH TX1 Getpad 2 TY1 Getpad 2 If Menucheck 0 TX1 TY1 1 Then Pulsout 18 300 I 0 End If Return SET PAD command activates touch input ON PAD command is used to jump to a label when touch input is received MENUSET command is used to set the desired touch input area and MENUTITLE command is used to set the name of the button itself PULSEOUT outputs BEEP sound to the piezo 289 SAMPLE 3 Draw a circle where your finger touches Filename CT003 CUL Const Device Ct1700 Dim TX1 As Integer TY1 As Integer Contrast 550 Set Pad 0 4 5 On Pad Gosub GETTOUCH Do Loop GETTOUCH TX1 Getpad 2 TY1 Getpad 2 circle AO Pulsout 18 300 Return 290 SAMPLE 4 Make a virtual keypad and accept numerical values Const Device Menuset 0 2 165 50 195 75 Menutitle 0 11 4 1 Menuset 1 2 205 50 235 75 Menutitle 1 11 4 2 Menuset 272 245 50 275 75 Menutitle 2 11 4 3 Menuset 3 2 165 85 195 110 Menutitle 3 11 4 4 Menuset 4 727 205 85 235 110 Menutitle 4 11 4 5 Menuset 5 2 245 85 275 110 Menutitle 5 11 4 6 Menuset 6 2 165 120 195 145 Menutitle 6 11 4 7 Menuset 7 2 205 120 235 145 Menutitle 7 11 4 8 Menuset 8 2 245 120 275 145 Menutitle 8 11 4 9 Menuset 9 2 165 155 195 180 Menutitle 9 11 4 0 Menuset 102 205 159 215 180 Menutitle 10 17 4 ENTER I 0 Do Loop GETTOUCH Ct1700 Dim TX1 As Integer TY1 As Integer Dim I As
136. be BASIC or LADDER Unlike other products you can simply use CUBLOC as a BASIC controller or as a PLC controller LADDER LOGIC which is the traditional way of programming PLCs for its outstanding control sequence is neither sufficient nor easy to use for graphic interface and other modern technology that require complex programming In comparison the BASIC language proves to be simple yet easy to implement those modern devices CUBLOC is able to handle both BASIC and LADDER LOGIC through on chip multi tasking By sharing memory data it s able to integrate both BASIC and LADDER efficiently and become a new type of controller by itself CUBLOC is created for beginners in mind It s basic purpose if to cut design time for those who are just entering the field of microcontrollers engineers from other backgrounds such as Chemical or Mechanical and anyone who would like to make something that they envision quickly and get a head start on their competitors With our Plug N Play displays development boards and relay boards you will be able to put something together in matter or hours instead of months Comfile Technology Inc Notice The Start Kit or Industrial Kit you receive comes with the latest version of Cubloc Studio Please be aware that the software may be upgraded often Please check www comfiletech com to download the latest version of Cubloc Studio Please do Setup Firmware Download after installing new version
137. ch mean either PO or P3 has to be on If you express the above circuit diagram in LADDER LOGIC it will be as follows Po P2 Pg P3 In CUBLOC STUDIO the right side is not shown In the Ladder Logic of CUBLOC PO P1 P2 are called Relays 341 Creating LADDER The below screen shows you how LADDER LOGIC is created in CUBLOC STUDIO amp CUBLOC studio c Wcubloc_testWu3 1018 cul File Edit Device Run Setup Help 6333458 4 mu E 5 Fi BASIC F2 LADDER REUS t 181 gd PEI UE Wizard F3 F4 F5 5 P eol Ful fa NOT END EG te to tins P62 P63 P86 MO P72 ls ESEEHL E Pel P82 P83 PR Pe MD HHHH C MI WORK ON TOGLE MI M2 WORK_OFF TOGLE M2 MPG ON INPUT M3 F 3 P40 P62 MPG ON OFF TOGLE M5 MPG ON LED P40 gt Y Modified Program 154 Bytes Data 1001 The red box shown above is the cursor for LADDER LOGIC You may use the keyboard up down left and right keys or the mouse to control the red box After moving to the desired position you can use keys F3 F12 to put the desired symbol You can also enter text for those required symbols 342 1 Press F3 to make a contact pur li T 1401 T L 7 e F3 ESG EN Ol ESA 2 ANOTA PEND 1 2 2 Type START and press ENTER a rear lt _ 1 1C T L ecl FS FB F F8 F9 Fil Fl2 NOT END O 2 3 Press F5 co
138. cing effect e Keyinh Variable KEYINH pin debouncingtime Variable Variable to store results No String or Single Pin Input Pin 0 255 deboucingtime Debouncing Time 0 65535 KEYINH is for HIGH ACTIVE inputs For LOW ACTIVE inputs KEYIN command must be used When there s input Keyinh will return 1 and O when there isn t A KEYINH 1 100 Read from port 1 after removing bouncing effect 146 Keypad Variable KEYPAD PortBlock Variable Variable to store results Returns Byte No String or Single PortBlock Port Block 0 15 Use this command Keypad to read input from keypad A Port Block can be used to read a 4 by 4 keypad input Keypad input can be connected to the lower 4 bits of the Port Block and keypad output can be connected to higher 4 bits of the Port Block Please refer to the below diagram 0514771897 Ie I 127524927 2341 i 2 2E 031027 na 1 a azgi rs A KEYPAD 0 Read the status of keypad connected to Port Block 0 If no keys are pressed 255 will be returned Otherwise the pressed key s scan code will be returned 147 Ladderscan LADDERSCAN This command LadderScan will force 1 scan of LADDER When put inside an infinite loop like DO Loop it can enhance the speed of Ladder program more than 10 ms per scan time If using this command as shown below you will not be able to use BASIC at the same time 148 Con
139. cstart If I2cwrite s b10100000 1 Then Goto err proc a I2cwrite adr bytel a I2cwrite adr lowbyte 326 a I2cwrite data 2cstop Delay 1000 2cstart a I2cwrite amp b10100000 a I2cwrite adr bytel a I2cwrite adr lowbyte 2cstart a I2cwrite b10100001 a I2cread 0 2cstop Debug Hex a cr ADR ADR 1 DATA DATA 1 Loop enu DEOS Delos Majors 1 Do Loop This example program will write a number to EEPROM and read from it When this program runs correctly numbers will increment on the DEBUG screen You can easily modify this code to support other EEPROMs Note Please wait at least 5ms after a write to the EEPROM END 327 NOTE 12 XPORT Server program to control multiple devices from single PC XPORT Custom Firmware Upload The first thing to do is to upload the custom firmware to your XPORT 1 Run Devicelnstaller 2 Choose the device you wish to recover upgrade Firmware then click Upgrade Here I selected an XPORT with address of 192 168 0 6 This wizard helps install firmware applications web pages and other configuration settings O Use a specific installation file Browse GiCieate custom Installation by specifying Individual files To continue click Next 328 4 Please click Browse AL Device Upgrade Wizard Step 2 of 5 Select the firmware ROM fila to use or leave blank ta keep the existing firmware Fimwaro ROM F
140. d Read seen 258 Function Code 05 1 Bit Write ocoococcnccncncnncnnnncnncnanononcnncncnnnnnnnnnns 259 Function Code 06 1 Word Write sese 260 Function Code 15 Multiple Bit Write sesseeeenn 261 Function Code 16 Multiple Word Write sseeem 262 Error Check ERR 263 MODBUS Master Mode ASCll ooccoccnnnnnnnncnnnnnnnnoncnncnnanonroncnnnnnnnnns 264 MODBUS Master Mode RTU esee 266 CHAPTER 10 CUTOUCH oormmcmssssscsssscosssscsscess 271 ADOUECUTOUCA oca tactica cintas 273 CUTOU Cin ai A idas 274 CUTOUCH DIMENSIONS oococcccnnnncnncnnnncnncnnnncnnnnnnnnoncnnnnrnnrnnenannnnnnnans 275 Menu System Library 2 nia a dd nenne 276 MENU Comnahds esce ere in arial 276 Menuset ui da a Cacek fcc et Lee PAM TE 277 lice TREE 277 Men check D iR RENI Rp rn RA RT RERUMS 278 Mern f everse ui oaecees verses i rE sa eU et eee acre EA 278 A A CTI IER RR 278 Waite raw sies ee oett so ves lc 279 Touch Pad Input Examples 3 0 rrr ere en Een err Rne ER 280 CUTOUCH I O POBRES cioe ee eher t teh nee Feo Nep ure nx od N e ad ve Vends 282 Relays a 285 Backup Bateria Ibex eot greet ea dee canta xe geh DES 286 KEEP Timer and KEEP Counter esessseene meme 287 12 CHAPTER 11 APPLICATION NOTES eo nnoooocoocooosrrrm 299 NOTE 1 Switch Inp t cata oia des 300 NOTE 2 Keypad Input eeeeen He
141. d cul Eile Edit Device Run Setup Help Bo S428 A gt mum FI BASIC F2 LADDER Ladder Mnemonic CUBLOCstudio untitled cul File Edit Device Run Setup Help Be d kG A gt att Bia FI BASIC F2 LADDER Ladder Mnemonic era sa eta ral I EEES zm el 10 10 10 10 F3 F4 F5 FT F8 Fg Fil F12 NOT END Insert Delete Undo Copy Wizard F6 31 32 33 34 35 36 37 38 Modified Program 9602 Bytes Data 101 You will see that at first CUBLOC STUDIO will be in TEXT EDITOR Mode If you press F2 the screen will change to LADDER EDITOR Mode and if you press F1 it will switch back to TEXT EDITOR Mode 52 Source files are saved under file extensions CUL and CUB as TWO FILES If you need to backup or move source files you must save BOTH of these files Dpn RES Look in Am Documents y et E3 My Pictures History a Desktop My Documents My Network P Files of type cusoc Source file cul y Cancel A When opening a file you will only see CUL files CUB files are not displayed but they are in the same folder When you open CUL file CUBLOC STUDIO automatically opens CUB file The source code can only be saved on the PC Source code downloaded to the CUBLOC module can not be recovered When you press the RUN button or CTRL R Save Compile gt CUBLOC module supports Code Download gt Execute are protec
142. d data 12345678H D1 gets 1234H and DO gets 5678H 383 Binary Decimal Hexadecimal To program well we need to know binary decimal and hexadecimal numbers The following chart shows the relationships between these three types of number representation Decimal Binary Hexadecimal 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F In CUBLOC s Ladder Logic we express binary and hexadecimal numbers in the following manner Binary 00101010B Hexadecimal OABCDH We put a B at the end of the binary number and an H for hexadecimal numbers To clearly identify that ABCD is a number we can put a 0 in front of the hexadecimal number E g OABH OA1H OBCDH In BASIC it is slightly different from LADDER in the way you express binary and hexadecimal numbers We use amp B100010 or amp HAB to express those type of numbers 384 WMOV DWMOV WMOV s d DWMOV s d The command WMOV moves 16 bit data from s to d DWMOV can be used for 32 bit data Usable Relay P M F S C T D Constants s Source O O O O d Destination O O 9 START WMOV 100 DO HL 1 INO DWMOV 1234H D2 1 When input START turns ON DO will get 100 When INO turns ON D2 will get 1234H UUUOUJ UNRPO AR 385 WXCHG DWXCH
143. d for a more precise AD conversion CUBLOC has an internal OPAMP When using ADIN command the OPAMP is not used By using this command EAdin the user can utilize the OPAMP for more precise results ADC OP AMP Please set the MUX value accordingly by following the chart below MUX OPAMP OPAMP Multiplier 0 ADCO ADCO 10 1 ADC1 ADCO 10 2 ADCO ADCO 200 3 ADC1 ADCO 200 4 ADC2 ADC2 10 5 ADC3 ADC2 10 6 ADC2 ADC2 200 7 ADC3 ADC2 200 8 ADCO ADC1 1 9 ADC1 ADC1 1 10 ADC2 ADC1 1 11 ADC3 ADC1 1 12 ADC4 ADC1 1 13 ADC5 ADC1 1 14 ADC6 ADC1 1 15 ADC7 ADC1 1 16 ADCO ADC2 1 17 ADC1 ADC2 1 18 ADC2 ADC2 1 19 ADC3 ADC2 1 20 ADC4 ADC2 1 21 ADC5 ADC2 1 128 The EADIN port must be set to input beforehand By using the OPAMP more precise results or a noise filtering effect can be obtained Dim J As Long Input 24 Set the port to input Use port 24 25 for CB280 II DU AD Do j Eadin 8 AD Conversion from ADO and Adl use OPAMP 1 Locate 0 0 Print hex5 J cr Print res lts to ECD Delay2 500 Little Delay Loop End Sub Delay2 DL As Integer Dim I As Integer For I 0 To DL Next End Sub 129 Eewrite EEWRITE Address Data ByteLength Address 0 to 4095 Data Data to write to EEPROM up to Long type values ByteLength Number of Bytes to write 1 4 Store data in the specified Address in EEPROM Dim A As Integer Dim B As Integer
144. d n Group move command Increment Decrement Commands WINC d Increment 1 to the Word DWINC d Increment 1 to the Double Word WDEC d Decrement 1 to the Word DWDEC d Decrement 1 to the Double Word Math Commands WADD s1 s2 d Word Add DWADD s1 s2 d Double Word Add WSUB s1 s2 d Word Subtract DWSUB s1 s2 d Double Word Subtract WMUL s1 s2 d Word Multiplication DWMUL s1 s2 d Double Word Multiplication WDIV s1 s2 d Word Division DWDIV s1 s2 d Double Word Division Logical Operation Commands WAND s1 s2 d Word AND DWAND s1 s2 d Double Word AND WOR s1 s2 d Word OR DWOR s1 s2 d Double Word OR WXOR s1 s2 d Word XOR DWXOR s1 s2 d Double Word XOR Bit Shift Commands WROL d Word 1 bit Shift Left DWROL d Double Word 1bit Shift Left WROR d Word 1 bit Shift Right DWROR d Double Word 1 bit Shift Right 368 LOAD LOADN OUT LOAD is for Normally Open Contacts and LOADN is for Normally Closed Contacts Relays that can P M T Constants be used LOAD 0 O O LOADN OUT O O Po MEN A p2 w e En EN M 369 NOT AND OR NOT Symbol PO P5 0 Po Pl P5 LE C PO F5 E E AND OR NOT symbol inverses the results If PO is ON then P5 will be OFF AND is when two relays are horizontally placed next to each other Both relays PO and P1 must be True ON in order for P5 to be True ON For OR operation two relays are vertic
145. dder language By having the option of using the BASIC language even the PLC user may be able to incorporate new features to the final product by making use of BASIC which has much powerful capability and flexibility in communicating with other devices than PLCs To use CUBLOC the user does not have to know BASIC He She may simply use only LADDER for development If the user does not require LCD display or keypad usage he or she does not need to use BASIC at all As you can realize more emphasis on user interface is becoming apparent in our industrial world CUBLOC is able to overcome the deficiencies and disadvantages of traditional PLCs by being able to use both BASIC and LADDER language DISPLAY KEYPAD PC INTERFACE MACHINE CONTROL We provide many BASIC libraries for user interfaces which you can simply copy amp paste to achieve the user interface structure desired 27 Hints for Micro Controller User MCU Micro Controller Unit is programmable micro computers such as PIC AVR and 8051 For mass production MCUs can cut costs and reduce the overall product size But the main disadvantage of MCUs is that it is hard to develop and takes a long time For simple projects this might be a good route Even those experienced engineers feel that MCU programming is time consuming and not a simple task To make a final product it takes many hours programming and debugging with an MCU Even after development if bugs
146. ddress LO 0X14 14 2 Length HI 0X00 00 2 Length LO OXOB OB 2 Error Check LRC 2 Ending Code CRLF 2 261 Function Code 16 Multiple Word Write PLC s can remotely control the status of its relays in units of Multiple Words at a time through this function code The following is an example showing Slave Address 3 s DO through D2 being written Que Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code 0x10 10 2 Start Address HI 0X70 70 2 Start Address LO 0X00 00 2 Length HI 0X00 00 2 Length LO 0X03 03 2 Byte Count 0X06 06 2 Data 1 HI OXD1 D1 2 Data 1 LO 0X03 03 2 Data 2 HI OX0A OA 2 Data 2 LO 0X12 12 2 Data 3 HI 0X04 04 2 Data 3 LO 0X05 05 2 Error Check LRC 2 Ending Code CR LF 2 Response Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code 0X10 10 2 Start Address HI 0X70 70 2 Start Address LO 0X00 00 2 Length HI 0X00 00 2 Length LO 0X03 03 2 Error Check LRC 2 Ending Code CR LF 2 262 Error Check If there is error in the data from the Master Slave will send back an error code Field Header Slave Address Function Code Error Code Error Check Ending Code Hex 0X03 0X81 0X09 ASCII Bytes o wo NNNNNRE There are the following types of error codes Code Error Name Explanation 01 ILLEGAL FUNCTION When a non supported function code is received 02 ILLEGAL DATA ADDRESS When an incorrect address is received
147. devices RAK KK KKK KKK kk kk k k kk k k kk k k kk ke ke KK ke k k Table of Modbus RTU device IDs see Const Integer DeviceIDs 100 53 55 57 59 61 63 51 N Number of Devices to read change this for the number of devices you want to read 4 of devices in table above or less for testing N 8 K OSS PACO AER OMAN Table of CRC values For High order Byte 266 Const Byte auchCRCHi _ 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 OxCl Ox81 _ 0x40 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x00 OxCl 0x81 0x40 Ox01 _ OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 Ox41 _ 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x00 OxCl Ox81 _ 0x40 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 Ox01 _ OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x00 OxCl Ox81 0x40 _ 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 OxCl Ox81 _ 0x40 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x01 OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 OxCl 0x81 0x40 0x00 OxCl 0x81 0x40 Ox01 _ OxCO 0x80 0x41 0x01 OxCO 0x80 0x41 0x00 0xC1
148. dioWtestsourceW DER ile Edit Device Run Setup Help ang xea p mi FI BASIC F2 LADDER Ladder Mnemonic Const Device CB280 Delay 10 Debug Hello Debug Terminal Port Baud Rate Parity Data Bits Tx a Mu cow 115200 none fe z em Fix Right Side As you can see in the above example DEBUG command can be used to debug your BASIC program while it s running Be aware that you are not allowed to use both Debugging and LADDER Monitoring at the same time You must remove Debug commands or comment them out with an apostrophe to use LADDER Monitoring Another option is to use the command Set Debug Off which will turn OFF the DEBUG feature 55 Menus File Menu New Open Ladder Import Save Save As Save Object Print Ladder Print BASIC Print Setup Download from object file BASIC Section Ladder Section Ctrl 0 Ctrl S Fl F2 CiCubloc Testitc29exouttest cul CWCublac TestWBCDTEST cul C Cubloc_Test bmpdown cul CWCubloc TestWtata cul Exit Menu New Open Ladder Import Save Save As Save Object Print Ladder Print Basic Print Setup Download from Object file Basic Section Ladder Section Last 4 Files Edited Exit 56 Explanation Create new file Open file Import Ladder Logic part of a CUBLOC program Save current file Save current file under different name Save current program as an object file Use this to protect your
149. ds I2C s START STOP When SCL Clock and SDA Data are HIGH I2C is in idle state If START command is executed during idle state I2C begins When SCL and SDA are both LOW I2C is in busy state If STOP command is executed during busy state I2C stops There is also a Repeated Start in I2C If START command is executed during busy state I2C Restarts i a T SDA h im M l vd 1 E DE 1 T 11 po f pa r4 i lt lt Repeated STOP Start M 2 a o M O TU 248 Using EEPROM through 12C We will go through an example showing 12C communication between CUBLOC and EEPROM 24LC32 The following is a picture taken from the EEPROM s data sheet It shows how to send data to the EEPROM R W S contRoL Byte o A HiGHADDRESS A LowADDRESS A DATA A P S Start A Acknowledge P Stop The first bit is for Start command The 4 upper bits of CONTROL BYTE must be 1010 and the 3 lower bits are for selecting the Chip s address The user may change the EEPROM chip s address by configuring the chip For a read 1 can be written for R W and for a write O can be written for R W A is for acknowledgement of the 8 bits 1 byte sent Then HIGH ADDRESS LOW ADDRESS and DATA can be sent When all data are sent Stop command can be sent It takes about 5ms of time for EEPROM write The following is a write EEPROM sequence in CUBLOC s BASIC code set ls 8 9 t Set pin
150. e The main advantage of CUBLOC over other PLCs is that it fills LADDER LOGIC s weaknesses with BASIC language LADDER LOGIC is good enough to replace sequence diagrams but to collect data print graphics and process complex tasks is asking a little bit too much That is why we added the BASIC language You can now run both LADDER LOGIC and or BASIC Another advantage over other BASIC processors is that CUBLOC is able to separate the amount of work and programming between LADDER LOGIC and BASIC as necessary The user is able to debug easier by having two processes work together instead of grudging through lines of BASIC codes DIM A AS INTEGER H IF IN 0 0 THEN OUT 2 LADDER LOGIC CUBLOC studio d WsourceWcublocstudioWtestsourceWcaralram cul File Edit Device Run Setup Help Bod d x5 muB s FI BASIC F2 LADDER Ladder Mnemonic ALRAM CUBLOC studio e Wcubloc testWu3 1018 cul 1 Saze z File Edt Device Run Setup Help If F_KEY1 1 Then pa MODE 1 Bal dx HM mnB CHIRP TIMER 8 Fil Basic F2 LADDER Ladder Mnemonic F KEYl 0 PEE EE E ESSE TS ARA p Ap AEG EO HE DOORCLOSE TIMER 10 Vas F3 F4 rs rs F7 Fg r Fi Fr NOT END _inser Delete Undo Copy End If F9 PED PED F2 Incr SIREN TIMER Lap A Out SIREN SIREN_TIMER BI TSENS XCW XcCW Out LED SIREN_TIMER BITJ MB PH TOUCH SENS INPUT P3I MB XCW TOUCH Out FLIGHT SIREN TIMER H H CW T 4 et F2
151. e 302 NOTE 3 Temperature Sensor occonconconcnnnnnnninnnnnnoncnnncanronconanencnnnnns 305 NOTE 4 Connect to the Internet through XPORT eene 310 NOTE 5 Sound Bytes rsp aeaee etre a ante ikke daba 314 NOTE 6 Step Motor Pulse Generation ooccoccoccnnccnnnnnconcnncnnnncncnnnnns 317 NOTE 7 RG Servo MOOR riviera 319 NOTE 9 DST302 RTG us iiic correr retium cda 322 NOTE 10 MCP3202 12 Bit A D Conversion eene 324 NOTE 11 Read and write to the EEPROM csseem eens 326 NOTE 12 XPORT Server program to control multiple devices from SNe PC sac EE 328 MEMO ns 338 CHAPTER 12 LADDER LOGIC cssosssscsosssossesssennnsssssosssessersscennnasseesssessessecennnasssssnseosoerees 339 LADDER BaSiGs susi AA ais 340 Creating LADDER cio TT aa coda 342 Editing LADDER TEXT iaa ea aa iaaa aa baa Apid astia na ii paaa 344 Moriltoring u ida A EA A A 348 Time Chart Monitoring oocoocoonconccnnnennnnanonnonnennnonconcncnnencnsnr a nne 349 WATCH POINT oe D tere De Pare aa r eei dag 350 Relay sEXpEesslOI iioii oro nas 355 Eadder Symbols spi urre ae oet teeth 357 Using A iiniaioana aa Ee Ea ELNE Ea Eana Ea AAR 359 Use OF Aliases ici a ct Sk da cen den on oi E aa daba 360 Beginning of LADDER concisa A ab 361 Declare devices to USC cooncccincanisnconnno ranma nar na 361 To Use Ladder Only without BASIC eem 362 Enable Turbo Scan Time Mode eeeeen HH 363 Things to Remember in LADDER
152. e 357 CONTRAST o 217 419 COS data 96 COUNT eerie 116 419 COUNTRESET 118 419 CSG Dip switch 234 CSG module s 233 CSGDEGC 5 thiet oes 236 CSGHEX ns 236 CUBLOC I O ports 143 CUBLOC STUDIO 52 Cubloc Study board 1 Schemetic 247 CUCANVAS eeeennn 293 CUTOUCH inii 272 CuTOUCH Dimensions 275 CuTOUCH I O Ports 282 D data memory space 73 DED ted 119 419 DEBUG eiiis 120 419 o ot 98 declare the device 361 DECR niiinteies 123 420 DEFCHR ene 227 420 DELAY iaa iie eine 124 420 A Bie 372 DEN is SEE aidera 372 digital thermometer 321 DIM EM aaea e 69 Din Railz 2 oc ncm 24 DO LOOP ono 125 DOTSIZE 226 420 Double Word size 383 DOWN Counter 379 D EE TTE RNC CR ORDER REEN 99 DPRINT i access teiceeverertensceeren cs 224 DS162041 5 rins iiis 321 DTZERO neu 126 420 DWADD ii 390 DWAND enn 395 DWDEC recorrer 389 DWDIV AAE HH 392 PWN G a zada 389 DWMOV ronn isnin pida 385 DWMUL ta 391 DWOR xe ERES 393 DWROL 2 2 asii 396 DWROR rn eerie perde 397 DWSUB iere niunt mre 390 DWXCHG eene 386 DWXOR papati aiii aitai iian 394 E EADIN it oaa eaa 128 420 EEPROM 130 249 326 EEREAD
153. e ID Dec DevicelDs K Cr Read 32 WORD registers or 16 Floating Point Values WordRead DeviceIDs K 362 32 IAS If K gt N Then K 0 End If Incr clock clock clock 1 Return End Sub WordRead SlaveAddr As Integer StartAddr As Integer Length As Integer DataLength 4 Length 2 269 msg 0 SlaveAddr function code for word read or for holding registers msg 1 0x03 msg 2 StartAddr 256 StartAddr mod 256 msg 4 Length 256 msg 3 msg 5 Length mod 256 This part calculates CRC derived directly from the Modicon Modbus PDF uchCRCHi OxFF uchCRCLo OxFF For dLen 0 To 5 ulndex uchCRCHi Xor msg dLen calculate the CRC uchCRCHi uchCRCLo uchCRCLo Xor auchCRCHi uIndex auchCRCLo uIndex I Next CRC uchCRCHi 8 Or uchCRCLo msg 6 CRC 256 msg 7 CRC mod 256 Set REDE pin to TRANSMIT mode send 8 bytes of data Debug Cr start sending Out REDE 1 Puta 1 msg 8 Option 1 Wait until transmit finished and MUST put a small delay Waittx 1 Udelay 100 Option 2 Udelay 300 Set REDE pin to RECEIVE mode Out REDE O Debug done Cr End Sub Please check our Forum on the internet www cubloc com on Modbus ASCII and RTU updates as we upgrade our Basic source code often 270 Chapter 10 CUTOUCH Please be careful to not touch the inverter labeled DANGER 271 About CUTOUCH is an integration of Touch panel graphic LCD and CUBLO
154. e flashed in LADDER Re flashing means that the Ladder will read I O status beforehand and store the status in P relays After scanning LADDER will re write the status of I O ports into P relays INPUT REFLASH LADDER SCAN OUTPUT REFLASH Hi In BASIC IN and OUT commands can be used to control I O ports This method directly accesses the I O ports whether it is read or writes In order to avoid collision among the two the I Os used in BASIC and LADDER should be specified One a port is declared with USEPIN command it can only be used in LADDER and cannot be accessed in BASIC USEPIN 0 IN START USEPIN 1 0UT RELAY You can also add an alias such as START or RELAY as shown above for easy reading of the Ladder Logic 359 Use of Aliases When creating Ladder Logic using Relay numbers such as PO P1 and MO the user can use alias to help simplify their programs PO P5 Pl HE STARTKEY MAINMOTOR A HH swi HF In order to use alias you need to declare them in BASIC You can simply use ALIAS command to use ALIAS for relays you desire to use LIAS MO LIAS M2 LIAS M4 gt DD MAINMOTOR STATUS1 MOTORSTOP You have an option of either using USEPIN or ALIAS command to use aliases in LADDER 360 Beginning of LADDER CUBLOC executes BASIC first You can set LADDER to start by using the command SET LADDER ON When this command is executed LADDER is executed consistently
155. e in order a type of Sequential Processing DimAAs Integer Dim B As Integer ncn Jump Again For B 0 to 10 Debug DECA CR A A 10 Loop Next I Goto Again These 2 types of programming languages have been used in different fields for a long time LADDER LOGIC is used in automation controllers such as PLCs On the other hand BASIC and other programming languages such as C and Assembly have been used in PCs and MCUs Whether you are an experienced MCU or PLC user you will be able to benefit by integrating both BASIC and LADDER LOGIC in your designs 19 The biggest advantage that LADDER LOGIC possesses is the ability to process input within a guaranteed slot of time No matter how complex the circuit becomes LADDER LOGIC is always ready to output when it receives input This is the main reason why it s used for machine control and other automation fields LADDER LOGIC is more logic oriented not a complete programming language To do complex processes it has its limits For example to receive input from a keypad display to 7 Segment or LCD and process user s input is a daring task for LADDER LOGIC But these things are rarely a problem for programming languages such as BASIC BASIC is able to process floating point numbers data communications and other things beyond the scope of what LADDER LOGIC can do alone Another advantage that BASIC has is that its language is very similar to the English language IF GOTO
156. e with CUBLOC using CUNET 12C protocol With one line commands PRINT CLS etc you can easily start printing to the LCD without hassling with complex lines and commands a da m Um cs ACNE TREATMENT a CUNET is especially engineered for CUBLOC displays therefore we recommend to use CUNET supported LCDs for quick and easy development Our Graphic Display GHLCD allows you to download Black and White BMP images from your computer and store it in its memory 31 7 Segment Display Modules CSG Series 7 Segment display modules can be easily implemented using CUBLOC s I2C protocol and native commands Mn m n Mn 71 EJ EJ EJ CUTOUCH Series CUTOUCH is an integration of our graphic LCD touch panel and CUBLOC core module With BASIC you can control the GHLCD touch panel With LADDER LOGIC I O ports can be controlled in real time We are constantly upgrading and developing new peripherals for CUBLOC core modules Please check out our website www comfiletech com often for these updates 32 Chapter 2 Hardware Hardware Features CUBLOC have the following features BASIC and LADDER LOGIC 80KB Flash Memory BASIC Execution Speed 36 000 Instr sec LADDER Execution Speed 10ms Scan time Turbo Mode 100 Micro Second Data Memory for BASIC 2 24KB Data Memory for LADDER 1 4KB EEPROM Memory 4KB 16 to 91 I O pins ports 10 bit 8 Channel ADC 8 16bit 3 or 6 Channel PWM DAC
157. egration of CUBLOC core module graphic LCD and a touchpad The graphic LCD portion is GHLCD You can use the CUBLOC s GHLCD native commands to draw and print to the CUTOUCH ee O Mee Xm uem D VA Y P C E rmn p yA i E ol MR B COMAS O lo home NE QL EX ol TOUCH PAD GRAPHIC LCD MODULE CUBLOC To implement a touch screen and PLC it can add up to a big sum of money But with CUTOUCH you do not need two different devices you just need all in one device that will be less money in the long run CuTOUCH TOUCH SCREEN PLC 273 CUTOUCH DANGER Please be careful near the inverter where a DANGER label is located large current flows through there Front Back 1 0 PORT Connecter DC 9 30V RS232 Download 1 0 PORT Channel 1 cable 274 CUTOUCH Dimensions lig 121 35 gt Cet 91 85 109 2 131 4 120 182 2 8 180 re gt 57 4 y gt 10 4 V ge mum iem c e ewm RW t A Wu E CUTOUCH Mounting Instruction CUTOUCH comes with mounting brackets Please install the mounting brackets as shown below before installing CUTOUCH 275 Menu System Library CUTOUCH supports extra commands for easy
158. ems CUBLOC uses BASIC as its main language We recommend controlling LADDER from BASIC For example there is a MASTER CONTROL feature in LADDER LOGIC allowing the user to set Control Zones Control Zones are sections within the LADDER LOGIC that the user can set entire sections of the control circuit With the MASTER CONTROL feature the user can enable disable LADDER LOGIC s Control Zones easily IFA 1 THEN M 1 2 1 If B 1 THEN _M 1 0 MCSCLR 0 In BASIC the user may read or write to LADDER LOGIC s data memory In the above example you can access relay M1 as M 1 and write to it from BASIC As you can see CUBLOC supports BASIC and LADDER multi tasking simultaneously through data memory sharing 22 Advantages of On Chip PLC Embedded Computer One of the main advantages of CUBLOC is that it is an On Chip PLC Normally we think of PLC as a block type case with input and output lines When using these PLCs an external case and cabinet must be used in addition to other mind bogging wiring requirements When using just a couple of sets this might not present a big problem But when mass producing such PLCs labor cost for assembling the PLCs and faulty parts could lead to many problems Most importantly the overall design of you final product will be bigger and will cost more to produce CUBLOC CORE MODULE 23 CUBLOC is an On Chip PLC allowing easy fit on a PCB You may use the PLC almost like a
159. er will be able to write more clear and easy to read code Alias MO Rstate Alias MO Kstate Alias PO StartSw 106 Bcd2bin Variable BCD2BIN bcdvalue Variable Variable to store results Returns LONG bcdvalue BCD value to convert to binary This command does the exact opposite of BIN2BCD command Dim A As Integer A Bcd2bin amp h1234 Debug Dec A Print 1234 107 Bclr BCLR channel buffertype channel RS232 Channel 0 3 buffertype O Receive 1 Send 2 Both Clear the specified RS232 Channel s buffer Buffer type can be chosen ile 11 0 Clear RS232 Channel 1 s rx buffer ECU Clear RS232 Channel 1 s tx buffer ele 1 2 Clear RS232 Channel 1 s rx amp tx buffers 108 Beep BEEP Pin Length Pin Pin number 0 255 Length Pulse output period 1 65535 The BEEP command is used to create a beep sound Piezo or a speaker can be connected to the pin A short beep will be outputted This is useful for creating Key touch sound effects or alarm sounds When this command is used the specified pin is automatically set to output BEEP 2 100 Output BEEP on P2 for a period of 100 TM cm 109 Bfree Variable BFREE channel buffertype Variable Variable to store results No String or Single channel RS232 Channel number 0 3 buffertype O Receive Buffer 1 Send Buffer This function will return the number of free bytes that either receive buffer or send buffer has currently For send
160. er you can choose between TO to T99 and for the second parameter you may use a number or a data memory such as DO Usable Relays P M F S C T D Constants TON TAON O O O Oo In the above LADDER diagram when START turns ON TO Timer will start from zero to 100 When 100 is reached TO will turn on Here 100 is equal to 1 second for TON and 10 seconds for TAON 1sec gt START 1 TO When START turns OFF the timer is reset to original set value of 100 and TO turn off too TON TAON commands will reset its timer values upon powering OFF To use the features of battery backup you can use KTON KTAON which will maintain its values when powered OFF Below is an example of how to reset TAON FI MO TAON TO 100 I Vl 1 Ji Fa O 377 TOFF TAOFF When input turns ON output turns ON immediately When the input turns OFF the output is kept ON until set amount of time Like TON and TAON there are 2 commands for two different time units Type of Timer Time units Maximum Time TOFF 0 01 sec 655 35 sec TAOFF 0 1 sec 6553 5 sec START TOFF T0 100 l START TAOFF T1 100 1 There are 2 parameters with commands TOFF TAOFF For the first parameter you can choose between TO to T99 and for the second parameter you may use a number or a data memory such as DO Usable Relays P M F S C T D Constants TOFF TAOFF O O O O
161. errupt even when there 1 byte of data received this command Set Until can be used to set when the interrupt will be called When the specified character is received or length of bytes received has exceed the set packetlength value then ON RECV will jump to the specified interrupt routine This way you can control when you want to process received data The packet length is set in case the specified character never arrives You MUST use this command with ON RECV command The following is an example Dim A 5 As Byte Opencom 1 19200 0 100 50 On Recvl DATARECV RTN Se OR SN As you can see above the packet size is 99 bytes In other words if character S is not received within 99 bytes interrupt will occur SET UNTIL 1 5 The user may also just set the packet size and not set the character as shown above The character may also be written in decimal as shown below SET UNTIL 1 100 4 184 Set Int SET INTx mode x 0 to 3 External Interrupt Channel mode O Falling Edge 1 Rising Edge 2 Changing Edge This command must be used with On Int command in order to receive external interrupt inputs The mode of interrupt input can be set here to either falling edge rising edge or changing edge SET INTO 0 SOUT SIN ATN vss Po P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 10 20 30 40 50 ce 70 se so 110 e 26 130 140 150 160 e e is i9 2 pu 22 23 eo e 25 e 26 O 27 e
162. esults Returns Byte No String or Single PortBlock Port Block 0 15 Layer LAYER layerimode layer2 mode layer3 mode Layerimode Set Layer 1 mode 0 off 1 0n 2 flash Layer2mode Set Layer 2 mode 0 off 1 0n 2 flash Layer3mode Set Layer 3 mode 0 off 1 0n 2 flash Ladderscan LADDERSCAN Light LIGHT value value Back light O OFF 1 ON Line LINE x1 y1 x2 y2 Linestyle LINESTYLE value Lineto LINETO x y Low LOW Pin Pin I O pin number 07255 Locate LOCATE X Y Menu Variable MENU index pos Variable Variable to store results 422 1 selected O unselected Index Menu Index pos Position 02x1 1 y1 2 x2 3 y2 Memadr Variable MEMADR TargetVariable Variable Variable to store results No String or Single TargetVariable Variable to find physical memory address Menucheck Variable MENUCHECK index touchx touchy Variable Variable to store results 1 if selected O if unselected Index Menu Index Number Touchx Touch pad x axis point Touchy Touch pad y axis point Menu MENUREVERSE index Reverse Index Menu index number Menuset MENUSET index style x1 y1 x2 y2 Index Menu Index Number Style Button Style O none 1 Box 2 Box with Shadow X1 y1 x2 y2 Menu Button location Menutitle MENUTITLE index x y string Index Menu index number X y Title location based on left upper corner of button string Name of the menu
163. et Onpad SET ONPAD On Off At power On Set Onpad is On by default This command turns On or Off the ability to receive Onpad interrupts using global flags When the Onpad is set to on then an interrupt can be received using the On Pad command If the Onpad is set to OFF then the code for On Pad will not be executed if the interrupt occurs See also the Set Pad and On Pad commands 189 Set Onrecv SET ONRECVO On Off SET ONRECV1 On Off At power On Set Onrecv is On by default This command turns On or Off the ability to receive On RecvX interrupts using global flags A On RecvX interrupt occurs after data is received on the serial port AND stored into the receive buffer When the Onrecv is set to On then an interrupt can be received using the On RecvX command If the Onrecv is set to OFF then the code for On RecvX will not be executed if the interrupt occurs See also the On Recv command Set ONRECV1 On Set ONRECV1 Off 190 Set Ontimer SET ONTIMER On Off At power On Set Onrecv is On by default This command turns On or Off the ability to receive On Timer interrupts using global flags An interrupt occurs at every time interval set by the On Timer command When the Ontimer is set to on then an interrupt can be received using the On Timer command If the Ontimer is set to OFF then the code for On Timer will not be executed if the interrupt occurs See also the On Timer command 191 Shiftin
164. et the graphic layer 0 1 2 Glocate GLOCATE x y Gpaste GPASTE x y layer logic logic 0 OR logic 1 AND logic 2 XOR logic 3 Clear screen then pop Gprint GPRINT string Gpush GPUSH x1 y1 x2 y2 layer Gpop GPOP x y layer logic logic 0 OR logic 1 AND logic 2 XOR logic 3 Clear screen then pop High HIGH Pin Pin I O pin number Hpaste HPASTE x y layer Hpop HPOP x y layer Hpush HPUSH x1 y1 x2 y2 layer I2cstart I2CSTART I2cstop I2CSTOP I2cread Variable I2CREAD dummy Variable Variable to store results No String or Single dummy dummy value Normally 0 421 I2cwrite Variable I2CWRITE data Variable Acknowledge O Acknowledged 1 No Acknowledgement data data to send Byte value 0 255 In Variable IN Pin Variable The variable to store result No String or Single Pin I O pin number 07255 Incr INCR variable Variable Variable for increment No String or Single Input INPUT Pin Pin I O pin number 07255 Keyin Variable KEYIN pin debouncingtime Variable Variable to store results No String or Single Pin Input Pin 07255 deboucingtime Debouncing Time 1765555 Keyinh Variable KEYINH pin debouncingtime Variable Variable to store results No String or Single Pin Input Pin 07255 deboucingtime Debouncing Time 0765555 Keypad Variable KEYPAD PortBlock Variable Variable to store r
165. etc allowing the beginners and the developers to learn in matter of hours instead having to deal with months of learning curves LADDER LOGIC Programming Languages BASIC C ASM Device PLC PC or Micro Computer Application Automation Machine General Computing Control Advantages Sequencer Bit Logic Complex Math Timers Counters Data Communication Data Collection amp Process Analysis Graphic Interface Basic Parallel Sequential Mechanism LADDER LOGIC s parallelism and BASIC sequential language both have its advantages over each other LADDER LOGIC is able to process what couldn t be done with BASIC On the other hand BASIC is able to process easily what either couldn t be done or is very hard to do with LADDER LOGIC That is why we created CUBLOC which the user is free to use both LADDER LOGIC and or BASIC based on the application being created After understanding the advantages of both LADDER LOGIC and BASIC the user will be able to create more efficient final products while saving development time and costs 20 Multi tasking of LADDER and BASIC There are many ways to implement both BASIC and LADDER in one processor The current products on the market use BASIC as part of LADDER LOGIC These products support BASIC and LADDER LOGIC but there is one clear weakness Ja FUNC 1 PO P1 Print Setting Mode IH FUNC 1 A A 1 B B 1 RETURN The first weakness is that based on the
166. f Comfile Technology Inc WINDOWS is a trademark of Microsoft Corporation XPORT is trademark of Lantronix inc Other trademarks are of their respective companies Notice This Data Book may be changed and updated without notice For the addition of new features information can be updated without notice Comfile Technology Inc is not responsible for any actions taken outside the explanation of this data book This product is protected by patents across the world You may not change copy reproduce or translate without the consent of Comfile Technology Inc Disclaimer of Liability Comfile Technology Inc is not responsible for special incidental or consequential damages resulting from any breach of warranty or under any legal theory including lost profits downtime goodwill damage to or replacement of equipment or property and costs or recovering reprogramming or reproducing any data stored in or use with Comfile Technology products Preface Comfile Technology has been developing PLC and BASIC controllers since 1997 With our past knowledge of this field we are giving you a brand new product that is more powerful flexible and has the best features of both BASIC and PLC controllers embedded After experiences developing and selling TinyPLC and PicBASIC which are chip based PLCs and BASIC controllers we have been able to improve our engineering efforts every year CUBLOC is able to adapt to the user s strengths whether that
167. f the String DIM ST1 AS STRING 12 DIM I AS INTEGER ST1 123 I ASC ST1 amp H31 is stored in variable I ASCII code of 1 is amp H31 or 0x31 101 Caution 1 A variable must be used when using string functions DEBUG LEFT INTEGER 4 A string by itself cannot be used STIL INTEGER DEBUG LEFT ST1 4 A string must be stored as a variable first Caution 2 Please use a constant for the 2nd parameter of string functions LEFT RIGHT MID DEBUG LEFT A1 K Variable K cannot be used DEBUG LEFT Al 5 A constant must be used 102 Chapter 6 CUBLOC BASIC Statements amp Library Adin Variable ADIN Channel Variable Variable to store results No String or Single Channel AD Channel Number not I O Pin Number CUBLOC has 10bit ADCs and 16bit PWMs The user can use ADC to convert analog to digital signals or use PWM to convert digital to analog signal ADIN command reads the analog signal value and store the result in a variable Depending on the model the number of AD ports may vary For the CB280 there are 8 AD ports P24 P31 The AD port must be set to input before use When voltage between O and AVREF in inputted that voltage is converted to a value from O to 1023 AVREF can accept voltage between 2 5 V Generally 5V is used If the user inputs 3V to AVREF voltage between O and 3V is converted to a value between 0 and 1023 Note CB220 AVREF is fixed to 5V Return value 1
168. fer to the above picture for PCB design The numbers are Offsets based on location 0 0 X 150 X 2100 Y 1600 Y 1600 y CB290 X 575 Y 150 X 0 Y 0 Unit 1 100 Inch Mil 47 CUBLOC Chipset CB280CS The CB280CS has exactly the same features as a regular CB280 chip except it s in a chipset format By using the CB280CS the user is able to solder the chipset directly on to their PCB This will lower your overall production cost while integrating CB280 into your product seamlessly Since this chipset has same features as a regular CB280 we recommend you develop your applications on the CB280 before going into production with the chipset version The CB280CS includes Main Chip Sub Chip CUBLOG a CB280CS s 8 E N nnnnnnnrnrnnnrnrnrnru 00 5G 8 B8 b 8 8580 AR BE VDD 1 48 L3 Pss rxo O2 47 5 P36 TXO 3 46 L3 P37 P18 4 45 3 P38 PWM3 P19 5 44 L3 p39 PWM INTO P20 6 43 3 Pas PWM5 INT1 P21 7 GLIBLOG 4217 P47 VDD 1 INT 2 P22 8 4 0O p46 rapa Cp CB280CS of pes RS ss PO 10 i 1 39 EJ P44 i A 11 Main Chip 3s 7 Pas R4 Sub Chip Mos P2 O12 37 EJ P42 R3 4 MIS O P3 13 36 7 P41 Pa ua 35 1 P40 Pwmo Ps 15 34 3 P14 Pwm1 Pe C16 a3 3 Pro 9 N amp N R amp 8 h 8 R 8 5 9 UuuuumuuuuuuuUuuuuu E EOS zz gt BE Ze Main chip pin out Pin Name Function Desc 1 VDD Power
169. fin d the 2 s complement of 0x3C we can write it in binary first 0011 1100 Then we can invert the bits 1100 0011 Then add one which is 1100 0100 0xC4 LRC 0xC4 ASI fo 3 fo fi o Jo 1 3 Jo fo 2 5 Je C LF I R Hex 3A 3 3 3 3 3 13 3 3 3 3 3 3 4 13 1 256 Response to the query above is Response Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code 0X01 01 2 Byte Count 0X05 05 2 Data 1 0X53 53 2 Data 2 0X6B 6B 2 Data 3 0x01 01 2 Data 4 OXF4 F4 2 Data 5 OX1B 1B 2 Error Check LRC 2 Ending Code CR LF 2 If you look at the response to the query you can see that bit 20 through 27 makes one byte P20 is placed as LSB of Data 1 and P27 is placed as MSB of Data 1 Likewise we can acquire all of P20 through P56 and the left over bits can just be disregarded 257 Function Code 03 04 Word Read This function code can read 1 Word 16 bits usually used for Counters Timers and Data relays The following shows an example that reads Slave Address 3 s D relay 0 to 2 Que Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code 0X03 03 2 Start Address HI 0X70 70 2 Start Address LO 0X00 00 2 Length HI 0X00 00 2 Length LO 0X03 03 2 Error Check LRC 2 Ending Code CR LF 2 1 Word is has 2 bytes so we are going to get 6 bytes total as response Response Field Hex ASCII By
170. h Timeset 6 amp H5 Year Do I Time 6 Debug Year 200 Hex I I Time 5 Select Case I Case 0 Debug January Case 1 Debug February Case 2 Debug March Case 3 Debug April Case 4 Debug May ase 5 Debug June 197 Case 6 Debug September Print date Debug Wednesday Debug Thursday Debug Saturday _ Terminal Baud Rate Parity Data Bits ar i COM v 115200 S4 None z fe iler Debug July Case 7 Debug August Case 8 Case 9 Debug November Case 10 Debug December End Select I Time 3 Debug Hex2 I Debug Y Y I Time 4 Select Case T Case 0 Debug Sunday Case 1 Debug Monday Case 2 Debug Tuesday Case 3 Case 4 Case 5 Debug Friday Case 6 End Select Debug cr I Time 2 Debug Hex2 I I Time 1 Debug Hex2 I I Time 0 Debug Hex I cr Delay 1000 Loop Debug Terminal Screenshot 198 Friday Fr Y Friday Friday Friday Udelay UDELAY time time interval 1 65535 A more specific delay function Delay will start out at about 70 micro seconds Every unit added will add 14 to 18 micro seconds For example Udelay O would be about 70 micro seconds Udelay 1 would be about 82 to 84 micro seconds When Interrupt or LADDER code is being executed at the same time this delay function might be affected During this delay BASIC interrupts are enabled and could cause further delay when usi
171. he LADDER program will jump to label SK 1 In the below example LADDER diagram when DO equals CO the program will jump to SK 1 D0 C0 GOTO SK 1 t 1 398 CALLS SBRT RET CALLS label SBRT label CALLS will call a sub routine SBRT is the starting point for a sub routine RET is the ending point for a sub routine E SNA Main Program Eom l START CALLS CHK RTN H HM 1 I l RET l t 1 RETmust be used when l there are sub routines SBAT CHK RTM Sta rt of sub routine a 1 End of Ladder Please be aware that when adding sub routines to your program you need to add RET to the end of main program to differentiate from sub routines END goes at the very end of main program and sub routines in this case 399 INTON INTON s d INTON is same as WMOV command except it can cause an interrupt in BASIC part of CUBLOC Usually Relays P M F S C T D Constants s Source O O O O d Destination O O O PO INTON 3 00 1 P1 INTON 2 D0 gt 1 1 400 Special Relays You can use special relays to find out about the current status of CUBLOC or use them for timing functions and applications Special Relay Explanation FO Always OFF Fi Always ON F2 Turn on 1 SCAN time at POWER UP Set Ladder On
172. his command Shiftout sends shift output There are 3 modes Mode 2 is for I2C protocol In I2C communication there requires an acknowledgement ACK signal for every 8 bits SHIFTOUT 3 4 0 4H55 8 pin 3 Clock pin 4 Data Mode 0 send 0x55 bitlength 8 bit 193 Sys Variable SYS address Variable Variable to store results No String or Single address Address 0 255 Use command Sys to read the status of RS232 buffers for both Channel O and 1 e Address O Actual bytes of sent data in send buffer after executing commands PUT or PUTSTR e Address 1 Actual bytes of sent data in receive buffer after executing commands GET or GETSTR e Address 5 Timer value that increments every 10ms e Address 6 Data Memory RAM Address SYS 5 will return the value of the system timer which increments every 10ms You may only read the value not change it The Timer will increment up to 65535 and then reset to 0 You can use this system timer for applications requiring extra timer SYS 6 will return the current Data Memory Address At power ON the Data Memory Address is reset to 0 After calling Sub routines or Functions the Data Memory Address will increment If will also increment when Sub routines or Functions are called within a Sub routine or a function Interrupts will also increment the Data Memory Address When the Data Memory Address exceeds the total Data Memory a
173. his command is waiting other interrupts may be called In other words this command will not affect other parts of the CUBLOC system 202 Chapter 7 CUBLOC Display Library With CUBLOC you can easily control LCD through Comfile LCD products such as the GHLCD or CLCD Drawing lines circles boxes and printing strings can be done with single line of code Below are some of our LCD specifications that will aid the user in understanding the basics Character LCD CLCD CLCD is a blue screen LCD that can print characters and numbers A control board that receives serial data and outputs to the LCD is attached to the back of the CLCD CLCD receives data through the I2C communication protocol 204 Set Display SET DISPLAY type method baud buffersize type O Rs232LCD 1 GHLCD GHB3224 2 CLCD Method Communication Method O CuNET 1 COM1 baud Baud rate CuNET Slave address Buffersize Send Buffer Size This command SET DISPLAY can be used to set the settings for display It can only be used once All displays will communicate using method set here Please choose the type of LCD the method baud rate and buffer size CLCD will use Method O Method 1 RS232 Channel 1 Use RS232 Channel 1 for display For the CB220 port 11 TX is used CHANNEL 0 TX 4 SOUT VIN RX SIN vss ATN RES VSS VDD PO P1 P2 P3 P4 P5 P6 P7 P15 P14 P13 pig CHANNEL 1 P11 5 TX P10 4
174. hown below and set the connected I O port to INPUT mode When the switches in pressed CUBLOC will read HIGH and when LOW otherwise 1 CuBLOC 1 O Port 10Kohm How to connect Volume knob Please connect the Volume knob as shown below to a A D I O port and use ADIN command to read the input value of the Volume knob 10Kohm 4 O CuBLOC O Port The CUBLOC core module uses 5V power When using larger voltage please use appropriate voltage converter or regulator 238 How to Connect a Output Relay The following diagram shows how to connect a output relay to a CUBLOC I O port A photocoupler can be used to separate 24V and 5V and protect against noise Noise coming from 24V side will not affect the 5V side and vice versa 24V N ES y LS 1 rus 1N4148 RELAY V od 3 i i ral i Q ye o Yu EA LH 1 jw 3 7 g hh to ot ies PC48T1 OTT 10K 222 TD Y LOAD GND How to Connect a NPN TR Output This circuit diagram shows a NPN TR photocoupler separating 5V from the LOAD 24V CuBLOC 1 O Port 10K TK ANG Bii LOAD PC 18T1 gt 24V How to Connect DC24V Input Use a double polarity photocoupler to convert 24V signals to 5V When input is received CUBLOC will receive a HIGH 5V signal 2 2K 1W
175. hown below for using batteries VBB CB290 T H Power Features Operating Voltage 4 5V 5 5V Operating Clock 18 432MHz I O Port Source Current 20mA I O Port Sink Current 25mA Operating Temperature 40 125 Degrees Celcius Maintenance Temperature 60 140 Degrees Celcius Operating Humidity 595 RH Keep the board s surface dry when testing and or operating Additional Information If CUBLOC module is supplied with power above recommended voltage the chip can be destroyed Please be careful of static electricity that could damage the chip Please be aware that P1 is an input only pin To block noise please set all pins not used to input and set all outputs to Low when not being used All I Os are set to input as default at power ON When not using SIN SOUT and ATN pins please do not connect them to anything 45 Dimensions 46 CB220 30mm 1181mil 15 24mm 600 mil 25 4mm 1000 mil 2mm 78 74 mil 34 9mm 1374mil gt lt 2mm 78 74 mil 18 415mm 725 mil 59 4mm 2338 mil 4 gt 49 53mm 1950 mil Aa 2mm 78 74 mil ee ee CB290 ee i 36 83mm 1450 mil T 47 8mm 1882mil ee ee ee ee ee RE f gt lt 2mm 78 74 mil 10 8mm 425 mil 14 0 14 9mm 551 586mil CB290 9 5mm 374mil Please re
176. i P41 UO HaT p42 H P42 4 o Sl MEE f 500 523 2 Qe ei P45 pas E Zip CB280 P46 P48 D ER pay Pa Ae CONTA P27 NET S 3 5 P25 Es CUNE P25 o 1p P24 d rape fic EE I2C Jumper 1 7 P avo 0 5 P10 EXA RY o RS RB 16 pat T TY a amp 4K AK t ENS EET 3 2 X crono Nom m ppp p 8 UT m E 4 E ARSS NENE SEO E pl TC Z c an o 5V END S jl Wr 23 D ES preronaneson m s o 45V sos O 10K se LE D ano CONS swt S RES Hos E ge S xO E co NA zm H 2 TACT SW Orla A e a o ro e ea O 408 Appendix E CB290 Proto Board Schematics SOUT SIN ATN PO PI P Pa P5 PS P7 P56 P57 P58 P59 P50 PBI DSUBSP it PROGRAM CONNECT 45 1 CUNET Jumper t 34 P neoeymornenn o connocontneaegroz n Tidasakhsasad cdaan raannd m 7 x ES Sm EN 87 El i PIG ve sen pa Ey En 27 Vi RESET SWITCH SM TACT En CONIA CUNET 8t pgg PBB tes PES P55 T Poa 4 P54 1g P53 P53 s n pay 5 GND E p30 a CON20 CUNET pa Pag s ei AB 12C Jumper 28290 B PAB P39 P38 lt P38 PST P352 e 2 Rit RID 635 pas 5 5 4K 47K P35 p35 Ea eB P34 P35 P33 ated 4 232 5 032 i avitt LSE mie 2L J TTL_R
177. i z nn CONZA pued EN r T P P48 Pag P45 P45 RHE RE Pa P42 45V i CON22 120 CONIO 1 5 oco 2 RYD H SOUT TOH SIN bil QTRES ATN EQNsOoy ner wOmMor opmognol P7 ER SanhafrffERERat PORN m PIEZO JUMPER mer Ri 409 cout 1425751 GND o vec NCE JACK DC9V 30V CON2B as EL 4 z5gu m T A pi aste lo 4 ES A 330vH BLOCK h a5 1 t LYNZ 1 COIL It R x 100uF 35V z E c 5 zs 3 220 1N5819 eN Ts 43yF 35V 5 185819 T 330uF 16W LEDI x lo elk mm 3 Mji LED zh cont CONA cont CONIS HEADER 8 2POL Pe a AREE ESO 4 1 Y PO Po P24 a P24 PAB a pag P79 P72 P1 is Pt P25 i of P25 Pag of P49 P73 3 P73 P2 pe P2 P26 Fe P26 P50 o m P50 P74 7 pA P3 al o y P3 e27 EN n P27 P51 EREA P51 P75 E ba 1g P75 P4 4 P4 P2B te P28 P52 P5 P76 M P76 P5 1 PS P39 med P29 P53 p53 P77 Ho oft P77 P P P30 Te i P30 Pad i Pos P7B 1 ote P78 P7 P7 P3 ef P5 P35 p55 P79 P79 CON2 CONS CONE conie rA BX2POL SESER TAVOL EET 8Y2POL HEADERS 8Y2POL PB PB P39 z p32 p56 PSB Pao P80 Pg Pg P33 REO P33 P57 E P57 P81 Pat Pin PIO P34 P34 PSB P58 P82 3 PB82 Pt 3 Se Pi P35 al 9o n P35 P59 0 P59 Pas E o lg Pas P12 te P12 P36 qo cdm P36 P60 B P60 PS4 E P84 P13 PIS P37 Tape Che P37 P61 4 Pi P85 1 H Pas Pu Pia P38 eT P38 P62 E P62 PBB PBB P15 PAS P39 P39 P63 P63 Pa
178. i 101 VAR tia 69 VBB it ernie ees Seats 45 W WADD citada 390 WAITDRAW eeennm 279 WAND 1 4 ri ias 395 WSUB wis Iiis 390 WATCH POINT 350 WX CE G uiii i cesses ies 386 WDEC s ssnin ianiai ipni 389 ye 394 WDIM urine ins 392 WING s iiie rie diia debat 389 X WMODE 218 427 WMOV een eH 385 XPORT cocccocncooonncnonnninnnnninnnc nn 26 WMUL rentre etr erae 391 XPORT internet module 310 WOR iii paid aiino 393 XPORT Server ees 328 WROL eere here rna 396 433
179. iable constant will be printed Print characters on the text layer To print characters to the graphic layer GPRINT command can be used LOCATE 1 1 Move to position 1 1 PRINT COMFILE DEC I 208 CLCD Module On the back of the CLCD a control board is attached This control board receives CuNET signal and prints on the CLCD DIP S W CUNET RS232 5V RS232 CLCD can also communicate using RS232 There are two RS232 connector one for 3pin 5V level signals and the other for 4 pin 12V level signals 9 S S4 x7 SSIS GSE ges ecco CUNET RS232 5V RS232 Use the CLCD DIP switch to set the I2C slave address The 4 DIP switch is not used DIP Switch RS232 Baud rate I2C Slave Address 123 i nm 2400 0 123 an 4800 1 123 ua 9600 2 12 3 Mp 19200 3 123 ON E EE 28800 4 123 ra 38400 5 123 Bi mim 57600 6 123 mens 115200 7 209 One of CUNET or RS232 communication can be used If both are connected please make sure when one of them is working other is not The following is CLCD command table Command Example hex Byte Execution Explanation s Time ESC C 1B 43 2 15mS Clear screen A 15ms delay must be given after this command ESC S 1B 53 2 Cursor ON Default ESC s 1B 73 2 Curso
180. ilo Would you like to check the Lantronix Website for the latest diivar Lantronix Wensite To continue click Next 5 Please choose file called CUMAX_XXX rom directory as this PDF Select a ROM or SYS Firmware File tcp CUMAXSERVER TU B A 2 ne olga TS HAOD 6 Please click Next CUMAX 127 rom SQ ROM amp SYS firmware files rom sys Ha This file is in the same Yau may copy Mes over to the devica by specifying COB pariions or indus flos dioc Do not copy or replace any fles O etel fles individually O Install fles contained in COB partions To continue click Next 329 7 Please click Next again 8 The custom XPORT firmware that works with CuMAX Server has been uploaded Please wait a while and you will be able to see the XPORT after it resets itself Tha installation completed succestully Click Close to exi y Update fimware You can use the above method to upload new versions of custom XPORT firmware or the original firmware too xpt03 XXX rom First we must find the IP address of the computer as this will serve as the IP address that XPORT will look for and send messages Please go to Start gt Run and type command c qwe 279Z L Windows XP Professiona O 258 naw 330 When the DOS prompt screen comes up please type ipconfig
181. in 0 In START Port Declaration Usepin 1 In RESETKEY Usepin 2 In BKEY Usepin 3 0ut MOTOR Alias MO RELAYSTATE Aliases Alias M1 MAINSTATE Do LadderScan Loop F16 is a special relay for checking the current scan time You can connect it to an I O port as shown below and check it with an oscilloscope Fis O Below is an example of a conditional case where Turbo Scan Time is used Only when Relay MO is ON will the Turbo Scan Time be enabled Do Set Ladder On 10 ms Scan when MO is OFF Do While M 0 1 LadderScan Only Execute when M is ON Loop Loop 363 Things to Remember in LADDER Input symbol must be placed at the very left side of the Ladder Logic PO P5 H PO P5 Output symbol must be placed at the very right side of the Ladder Logic EA CuBLOCstudio untitled cul olx File Edit Run Setup Help Be dixS30 mu5I FI BASIC F2 LADDER 364 Identical outputs must not collide You may not use more than one vertical line as shown below More than 1 division will give compile error PO PI P5 IHH I 0 P2 P6 HI P3 P eJ P PI P5 E I P P6 C P P3 P7 E If you have unnecessary block such as below it will cause a compilation error Thisline isunnecessary P5 a Zi NE 365 Ladder Logic moves from top to bottom Po PI PO Te i P5 EHI 4 P5 Po PI FAI 0
182. include a command in the final compilation of your program By using conditional directives you will be able to manage multiple modules of your CUBLOC CuTOUCH with just one source code 86 By using preprocessor directive elseif or else you can create more complex if 4endif blocks Const Device CB220 Delay 500 Device only returns the decimal number If Device 220 Debug CB220 module used elseif device 280 Debug CB220 module used elseif device 290 Debug CB290 module used elseif device 1720 Debug CT1720 module used endif else may only be used ONCE in a if statement You may only compare constants declared with CONST command for the if statements ifdef name endif When using if to compare constants you can use ifdef to see if a constant has been defined previously using define or CONST If the constant has been defined previously the statements inside the if 4 endif block will be compiled otherwise it will be discarded define LOWMODEL 0 ifdef LOWMODEL LOW 0 endif In the above example since LOWMODEL is defined the statement LOW 0 is compiled else elseifdef may be used for more complex blocks like shown here ifdef LOWMODEL LOW 0 elseifdef HIGHMODEL HIGH 0 else LOW 1 endif 87 Hifndef name Hendif ifndef is exactly the opposite of ifdef directive If a constant has not been defined the statements inside if 4endif block will be compiled
183. ing data this command can be used to avoid overflowing the buffer DIM A AS BYTE OPENCOM 1 19200 0 100 50 IF BFREE 1 1 gt 10 THEN PUT TECHNOLOGY END IF If buffer size is set to 50 up to 49 free bytes can be returned The function will return 1 less than the set buffer size when buffer is empty 110 Bin2bcd Variable BIN2BCD binvalue Variable Variable to store results Returns Long binvalue Binary value to be converted This command BIN2BCD converts binary value to BCD code BCD code is a way of expressing binary values as decimals For example 3451 in binary is as shown below 3451 0000 1101 0111 1011 0 D 7 B The below is 3451 converted to BCD code As you can see each 4 bits represent one of the digits 3451 0011 0100 0101 0001 3 4 5 1 This command is useful when the user needs to convert a variable to be representable in a device such as the 7 segment display i 123456 j bin2bcd i Debug Hex j Print 123456 111 Blen Variable BLEN channel buffertype This function Blen returns current number of bytes of data in the specified RS232 Channel s buffer If the buffer is empty O will be returned When receiving data this function can be used to check how much data has been Variable Variable to store results No String or Single channel RS232 Channel number 0 3 buffertype O Receive Buffer 1 Send Buffer received before using GET or GETSTR to
184. ional array If Menu 0 1 lt 100 THEN If Menu button 0 s Y1 is less than 100 278 Waitdraw WAITDRAW This command will wait for a drawing command to finish before resuming execution ELFILL 200 100 100 50 Fill an ellipse WAITDRAW Wait until drawing is finished This command is especially useful for animations and when you have trouble displaying graphics because of the speed CUTOUCH has an internal buffer for receiving graphic commands from CUBLOC If this buffer fills up and data is sent to it the data could get corrupted In order to avoid these situations you can use the WAITDRAW command to wait until the buffer has enough space before sending graphic commands If you need to draw graphics repeatedly we recommend you use WAITDRAW to avoid situations where the LCD might get blurry or received noise This command can only be used with CUTOUCH 279 Touch Pad Input Example You can use SET PAD ON PAD and GETPAD commands to find out which menus were pressed from the user All PAD commands are geared for receiving and processing touch input We can use ON PAD interrupts to receive touch inputs The following is an example program that uses the touch pad 0 DEMO FOR CUTOUCH Const Device CT1700 Dim TX1 As Word TY1 As Word Set Pad 0 4 5 1 Activate Touch PAD Input On Pad Gosub abc 2 Declare pad interrupts Do Loop abc TX1 Getpad 2 3 Interrupt Service routine TY1
185. ions Window olx Ladder Style Size mw e LADDER size adjust Line Space p LADDER line space adjust Boarder Color Black White LADDER background color Monitoring Speed LADDER monitorring speed setting Fast 4 Slow r Auto Excute mode Iv Auto Run when download Auto run when download If you select to use Auto Run when download the program will automatically reset itself after downloading This can become a problem for machines that are sensitive to resets By turning this option OFF you will be able to control when the program is resetted after downloading In the help menu you will find Upgrade information and the current version of CUBLOC Studio 351 PLC Setup Wizard To use Ladder Logic in CUBLOC you must create the most basic BASIC code Although very simple this can be hard for first timers You can use the PLC Setup Wizard and setup the I Os you will be using and create the BASIC source automatically PLC SETUP WIZARD FIJ B49 F2 LALDER alesi oam SI E r3 r4 m5 G r E r9 i1 Ei PLC Setup Wizard Ladder environment edit Output BASIC code review Device Select 1 0 maps A D convertor CB220 y VV Use all IN all OUT all W AD channel 0 gt D10 W AD channel 1 gt D11 I AD channel 2 gt D12 Group AD channel 3 gt D13 PO P7 F AD channel 4 gt D14 AD channel 5 gt D
186. is case DEBUG HEX5 A if A is 123ABC 23ABC is printed first character Mis cut DEC Converts the variable to a decimal 10 bit DEC8 means to convert to 8 decimal places 1 to 11 can be used for decimal places DEBUG DEC A IFA is 1234 1234 is printed DEBUG DEC10 A If A is 1234 bbbbbb1234 is printed b is a blank space in this case DEBUG DEC3 A If A is 1234 234 is printed first character is cut Include the name of the variable by using question mark This question mark can only be used with HEX or DEC DEBUG DEC A If A is 1234 A 1234 will be printed DEBUG HEX A If A is ABCD A ABCD will be printed DEBUG HEX B If B is a sub routine variable let s say of sub routine CONV B 8 CONV ABCD will be printed B is in CONV FLOAT Use FLOAT to convert floating point values to String Const Device cb280 Dim Fl As Single Fl 3 14 Debug Float Fl cr Print 3 14000 Dim ST As String 15 ST Float F1 First store in a String ST Left ST 3 Convert to 3 decimal places Debug ST r Print 3 14 98 String Functions String Ructions are provided to assist the user in accessing data within the String DP Variable Decimal Places ZeroPrint The command DP converts Variable into decimal String representation If ZeroPrint is set to 1 zeros are substituted for blank spaces Dim A as Integer DEBUG DP A 10 0 Convert A into decimal String representation
187. is different from I O port number For CB280 pins 5 6 and 7 are used for PWM O 1 and 2 respectively Before using PWM please make sure to se the pins used to OUTPUT mode According to the set value of Period a maximum of 16 bit precision PWM signal is created When Period is set to 1024 it will be a 10 bit PWM When Period is set to 65535 it will be a 16 bit PWM Please set the Duty to be less than the Period Duty can be 50 of Period to create a square wave PWM is independently hardware driven within CUBLOC Once the PWM command is executed it will keep running until PWMOFF command is called 200 e 1024 LOW 5 Set port 5 output and output LOW signal PWM 0 200 1024 Output 10 bit PWM with duty of 200 and Width of 1024 IMPORTANT PWM 0 1 and 2 must used the same value of Period since they share the same resources Their duty values can be different PWM Channel 3 4 and 5 also must use the same value of Width since they share the same resources Their duty values can be different 169 Pwmoff PWMOFF Channel Channel PWM Channel 0 15 Stop the PWM output Following is available PWM channels according to the models sour Q 1 24 VIN SIN 2 23D vss ATN 3 22D RES vss Q4 21h vo Po js 20p P15 P1 ge 190 P14 P2 07 180 P13 P3 ja 170 P12 P4 o 160 P11 PWMO P5010 150 P10 PWM1 4 P6 01 14H Pa PWM2 P7 Q12 13p P8 For CB220 3 PWM channels
188. l mask the last 5 bits of the variable 76 Constants Constants can be used to declare a fixed value at the beginning of the program By doing this readability and debuggability of the source code will be easier The command CONST can be used to declare constants in CUBLOC CONST PI AS SINGLE 3 14159 CONST WRTTIME AS BYTE 10 CONST MSG1 AS STRING ACCESS PORT When the constant is not given a type the compiler will find an appropriate type for it as shown below CONST PI 3 14159 Declare as SINGLE CONST WRTTIME 10 Declare as Byte CONST MYROOM 310 Declare as Integer since it s over LIDO CONST MSG1 ACCESS PORT Declare as String CON Another way of CONST The Command CON can be also used to declare constants in the following way PI CON 3 14159 Declare as SINGLE WRTTIME CON 10 Declare as Byte MYROOM CON 310 Declare as Integer MSG1 CON ACCESS PORT Declare as String 77 Constant Arrays By using constant arrays the user is able to store a list of numbers before the program begins By using constant arrays the program can be simplified as shown below Const Byte DATAT 31 25 102 34 1 0 0 0 0 0 65 64 34 I 0 A DATA1 1 Store 3L Ir A RETE DOT A DATA1 I Store 25 in A Const Byte DATA1 CUBLOC SYSTEMS String data can be store in Byte constant arrays The ASCII code of the character is returned If DATA1 0 is read ASCII code of C i
189. le A 0 or 1 TIPS All CUBLOC I O ports support both input output You have many options in setting the pin status to input or output By default all I O pins are set to HIGH Z at power ON When pin is set to output it will either output HIGH or LOW signal HIGH is 5V and LOW is OV or GND ground 143 Incr INCR variable Variable Variable for increment No String or Single Increment the variable by 1 INCR A Increment A by 1 144 Input INPUT Pin Pin 1 O pin number 0 255 Set the specified pin to High Z High Impedance input state All I O pins of CUBLOC module are set to HIGH Z input as default at power ON High Impedance means that the value of resistor is so high that it s neither HIGH nor LOW INPUT 8 Set pin 8 to HIGH Z input state 145 Keyin Variable KEYIN pin debouncingtime Variable Variable to store results No String or Single Pin Input Pin 0 255 deboucingtime Debouncing Time 1 65535 This command KEYIN removes bouncing effect before reading the input You can use KEYIN only when inputting LOW ACTIVE as shown below For inputting HIGH ACTIVE please use KEYINH When there s input Keyin will return O and 1 when there isn t If you use 10 for deboucing time CUBLOC will check input for bouncing for 10 ms Bouncing usually lasts around 10ms so our recommendation is 10ms for most applications A KEYIN 1 10 Read from port after removing bouncing effect pe Boun
190. lease refer to On Recv interrupt routine for receiving data using the hardware serial buffer 166 Putstr PUTSTR channel data channel RS232 Channel 0 3 Data String Data String variable or String constant Send String data to RS232 Channel OPENCOM 1 19200 0 50 10 PUTSTR 1 COMFILE TECHNOLOGY DEC I CR Similar to Put command Putstr stores data to be sent in the send buffer Afterwards the CUBLOC BASIC Interpreter takes care of the actual sending Please also be careful to not overload the send buffer when it s full so you do not lose any data that needs be sent 167 Puta PUTA channel ArrayName bytelength channel RS232 Channel 0 3 ArrayName Array Name Bytelength Bytes to Send 1 65535 The command Puta can be used to send a Byte Array Simply put name of the array and number of bytes to send The array data will be sent starting from the first element of the array Dim A 10 As Byte Opencom 1 19200 0 50 10 Puta 1 A 10 Send 10 Bytes of Array A IMPORTANT If you try to send more bytes than the array has CUBLOC will send garbage values Please refer to On Recv interrupt routine for receiving data using the hardware serial buffer 168 Pwm PWM Channel Duty Period Channel PWM Channel Number 0 15 Duty Duty Value must be less than the Width Period Maximum of 65535 Use PWM to Output desired PWM frequency When using this command please be aware that PWM Channel Number
191. lename ds1620 cul gt Const Device CB280 Const iorst Ji Const ioclk 6 Const iodq 5 Dim I As Integer Delay 100 High iorst init ds1620 Shiftout ioclk iodq 0 12 8 Shiftout ioclk iodq 0 3 8 Low iorst Do Il High iorst Shiftout ioclk iodq 0 amp haa 8 i Shiftin ioclk iodq 4 9 i i debug dec i cr Low iorst Delay 100 Loop The final value received can be divided into 2 to obtain the current temperature END 321 NOTE 9 DS1302 RTC DS1302 RTC Real Time Clock is a chip that will acts as an electronic time keeper It has the ability to keep time and date in real time We will show you how to implement this clock chip into your application in this note 32768Hz DS1302 Pin Function I O Direction Explanation RST Reset Input Data transfer when High SCLK System Clock Input Clock signal I O Data Input Data input output Input Output Output Filename ds1302 cul gt Const Device CB220 Const iorst 7 Const iodio 6 Const ioclk 5 Dim I As Integer Dim adr As Byte High iorst Shiftout ioclk iodio 0 amp h8e 8 Shit cour ioclk iodio 0 0 8 Low iorst Delay 1 High iorst Shiftout ioclk iodio 0 amp h80 8 Shiftout ioclk iodio 0 amp H50 8 Low iorst I Do High iorst adr amp h81 Shiftout ioclk iodio 0 adr 8 i Shiftin ioclk iodio 4 8 322 Debug Hex i cr Low iorst Delay 1000 Loop The above code will read ADDRESS 0 second s value and
192. length of bytes to read 1 4 Print PRINT String Variable String String Variable When using variables constants String representation of the variable constant will be printed Pset PSET x y Pulsout PULSOUT Pin Period Pin Output Pin 07255 Period Pulse Period 1765555 Put PUT channel data bytelength channel RS232 Channel 0 3 Data Data to send up to Long type value Bytelength Length of Data 1 3 Putstr PUTSTR channel data channel RS232 Channel 0 3 Data String Data String variable or String constant 424 Puta PUTA channel ArrayName bytelength channel RS232 Channel 0 3 ArrayName Array Name Bytelength Bytes to Send 1765535 Pwm PWM Channel Duty Period Channel PWM Channel Number 0715 Duty Duty Value must be less than the Width Period Maximum of 65535 Pwmoff PWMOFF Channel Channel PWM Channel 0 15 Ramclear RAMCLEAR Reverse REVERSE Pin Pin I O Pin Number 0 15 Set SET DISPLAY type method baud buffersize display type O Rs232LCD 1 GHLCD GHB3224 2 CLCD Method Communication Method O CuNET 1 COM1 baud Baud rate CuNET Slave address Buffersize Send Buffer Size Set SET DEBUG On Off debug Set i2c SET I2C DataPin ClockPin DataPin SDA Data Send Receive Pin 07255 ClockPin SCL Clock Send Receive Pin 07255 Set SET LADDER On Off ladder Set Set Modbus mode slaveaddress modbus mode O ASCII 1
193. lo Qo je oo 5 gt Z x X N s 2 I I I L r rrrr zrzrirzrzczmzirir Xl xX Ly Ll LC Ll Ll Ll Ll Ll Ll LL Ly cli O AlN OO HS LO WO BN olol lt al O A wy ie Oj AI N mM t LN wor o BD CL a O Oj wi O WO O o O WO O WO XO o WO tO XO o o tO NININININI NINININI NININININI ININ G lt ca VJ o wl alol Ilan xu zo a Ol o l gt Z x gt N A lt I I I Ir rir IIrirrmimririirr I LI I E I Lr Ir Irrriririmiriirir SO A NI OO SF LO OW NN CO a lt al O Aj wy iL Ol I AY OO SF LO O RN CO aj LC a OF A wi ie i Yt ooo SF SE SE SE SE SE LN LA LO LO LO LO LO LO LO LO LAY LA LA LA LO LO Ww all Asia A Ae Ja O ALN Mm t Ln WO Nh ol oao e Vi I Ada T I I II II Ll Ll Ll LPL Ll III xX Xl xy Ll LV Ll Ll Ll Ll Ll Ll LL Lj ri xr oO FIN Mm SF in O NR OO D lt al Ol A wy ie Ol AIA oo TF LO O RN OO D lt a alol OQ wy ie NINININI NEN NE NINI NINININI NIAN aaa am a a ca ml A 9 a a a mmm 2 Ixi xl e O x uir w omisxizimiz mio DOJE Ol Z O W OE co 3 O Q O Q lt gt ZDDV DN nN wo S O o D oo zl ofa TISISEI SG AG alaala 200 lu O0 aade ors T I I II Ll Ll Ll Ll Ll LPL Ll Ly ri I I I L rrrrzr rzrizrzzizizirir O a N cosi oal olol lt al Ol A w O H A m LEO WO N CO oj lt al Oj O wy io S O O C S O S O S O oloo oojo adap mS mm mS ald dpa ala 404 Appendix B Note for BASI
194. ls Contact A Contact B Contact A is Normally Open and closes when a signal is received On the other hand Contact B is Normally Closed and opens when a signal is received EX ele Je A Normal Open B Normal Close Input Output Relay Symbol Input Output relays are the most basic symbols among the relays in Ladder Logic ContactA Po Pl P2 Al 11 Contact B Output Relay Function Relays Function Relays include timers counters and other math operation relays PO TON 10 100 C 1 ES Function Relay 357 Internal Relay Internal Relay M only operates within the program Unless connected to an actual external port it is only used internally You may use M relay as input or output symbol ACTION MOD e MO WMOV 100 D0 1 P relays that are not used as I O ports CUBLOC supports P relays from PO to P127 P relay is directly connected to I O ports 1 to 1 But most models of CUBLOC have less than 128 I O ports In this case you may use the unused portion of P relays like M relays 358 Using I Os CUBLOC I O ports can be used by both BASIC and LADDER Without defined settings all I O ports are controlled in BASIC To control I O ports in LADDER you must use the Usepin command and set the I O ports to be used in LADDER USEPIN 0 IN USEPIN 1 0UT The above code sets PO as input and P1 as output for use in LADDER The inner processes require that USEPIN will be r
195. me pattern of random values are generated Thus this function is not a true random number generator 173 Select Case Select Case If the condition Value of Case is met the Statement under the case is executed Select Case Variable Case Value Value Statement 1 Case Value I Valuel Statement 2 Cas Else Statement 3 End Select Select Case A I Case B 0 Case 2 B 2 Case 3 4 5 6 Use Comma for more than 1 value B 3 Case Is lt 1 Use lt for logical operations B 3 Case Else Use ELSE for all other cases B 4 End Select Select Case K Case Is 10 If less than 10 R 0 Case Is lt 40 If less than 40 R21 Case Is 80 R22 Case Is 100 R23 Case Else R24 End select 174 Set Debug SET DEBUG On Off Set Debug is set to On by default You can use this command to turn OFF and turn ON the DEBUG window in BASIC When you don t need DEBUG feature you can use this command to turn off DEBUG feature instead of erasing all the code with Debug code When this command is used all DEBUG commands are not compiled in effect they are simply discarded from the program 175 Set I2c SET 12C DataPin ClockPin DataPin SDA Data Send Receive Pin 0 255 ClockPin SCL Clock Send Receive Pin 0 255 This command set the I2C Data and Clock Pin SDA and SCL for I2C communication Once this command is executed both pins become to OUTPUT HIGH state Please use Input Out
196. n I O Port Block Explanation SOUT 1 OUT DOWNLOAD SERIAL OUTPUT SIN 2 IN DOWNLOAD SERIAL INPUT ATN 3 IN DOWNLOAD SERIAL INPUT VSS 4 POWER GROUND PO 5 IO SPI SS P1 6 Input SPI SCK P2 7 IO SPI MOSI P3 8 1 0 Block 0 SPI MISO P4 9 IO P5 10 IO PWM Channel O P6 11 I O PWM Channel 1 P7 12 I O PWM Channel 2 P8 25 I O ADCO AD Channel 0 P9 26 I O ADC1 AD Channel 1 P10 27 I O ADC2 AD Channel 2 P11 28 1 0 Block 1 ADC3 AD Channel 3 P12 29 I O ADC4 AD Channel 4 P13 30 I O ADC5 AD Channel 5 P14 31 I O ADC6 AD Channel 6 P15 32 I O ADC7 AD Channel 7 P16 83 IO CUNET SCL P17 84 IO CUNET SDA P18 85 I O INT Channel 2 P19 86 1 0 Block 2 INT Channel 3 P20 97 IO P21 98 IO 41 P22 99 IO High Count Channel 0 P23 100 I O High Count Channel 1 P24 45 Output P25 46 Output P26 47 Output P27 48 Output Block 3 P28 49 Output P29 50 Output P30 51 Output P31 52 Output P32 65 Output P33 66 Output P34 67 Output P35 68 Output Block 4 P36 69 Output P37 70 Output P38 71 Output P39 72 Output P40 53 Output P41 54 Output P42 55 Output P43 56 Output Block 5 P44 57 Output P45 58 Output P46 59 Output P47 60 Output
197. n 90 INTON gaen cone oderpenostid 400 K KCTD iaa cid 381 KCTU 2 erede coh rita 381 KEVIN citadas 146 422 KEYINH 146 422 KEYPAD 2 reus 147 422 KTAON 2 7 iccansetarea ino t aridi 377 KTONG 2 dene cti 377 L Eabel ta 138 LABE uan 398 LADDER LOGIC 19 340 LADDERSCAN 148 422 LAYER ennt tocadas 216 422 LCD displays se 31 Eo 99 LEN 2 ot nas 100 LIGA 218 422 LINE nte 221 422 LINESTYLE e 226 422 LINETO iiie 221 422 Ho 96 LOAD ipo inercia ita 369 LOAD N invitas cios ores 369 EOCATES 5 d sene its 208 215 Noc 96 LOG lO it 96 LONG coccion 69 ETRIM a aeaa 100 M MCP3202 2 inueni 324 MGS susti ol 373 MCSCLR aleina de izena de rne ake 373 Memadr caia 91 MEMADR eene 150 423 MENU buttons eesee 276 MENUCHECK 278 423 MENUREVERSE 278 423 MENUSET ipapa 277 423 MENUTTILE ee 277 423 MID ea anns 100 MODBUS iziti iiini 404 monitoring occoconcnconnoncnnnnos 348 motor driver sseeseeee 317 multi tasking se 21 N NOD s 151 423 NOD iocus ea S 152 423 Normally Closed 357 Normally Open 357 MO Martinica an 370 NTC thermistor 305 O OFFSET uidere tis 225 423 ON INT 3 inet unen 153 423 ON LADDERINT 154 423 ON PAD eee 156 423 ON RECV eee 157
198. n MCU You can design a customized PCB for the desired product which reduces the cost and size of your final product and most importantly allow the product to be one of a kind The following table shows differences between a traditional PLC and On Chip PLC Micro computer CUBLOC Traditional PLC CUBLOC Picture Production Din Rail Attachment Din Rail or PCB Labor Costs High Low Mass Difficult Easy Production Final Product High Low Cost Final Size Large Compact If you are currently using a traditional PLC please review our product and compare the costs if you change it to a PCB type We believe that you will have much more satisfactory final product at a fractional cost 24 Development Environment To use CUBLOC the user may use a Windows XP 2000 or 98 operating system equipped computer If you would like to use it in Linux Unix Macintosh environment you will need to install a virtual machine software of some type such as VMware etc that allows Windows operating system to run on it An RS232 port is also required or you may use a USB to RS232C converter Download and Monitoring is possible when connected with the PC When CUBLOC is disconnected from the PC it goes into a STAND ALONE state The main program is stored in CUBLOC s flash memory and will be retained even with no power The user may download new programs and erase them as many times as he or she wishes
199. n our BASIC language may slightly differ with actual Math operators Please refer to the below table Operator Math Basic Example Add 34445 6 A Subtract 10 3 63 B Multiply X 2 4 A 5 Division e 1234 3 3843 A To the power of 53 A 5 3 A 2 MOD Remainder of mod 102 mod 3 In CUBLOC BASIC a slash is used in place of division sign Please make sure to use parenthesis appropriately for correct calculations r 1 o 1 2 5 gt 1 23 5 344 2 6 3 4 p 2 6 3 4 81 Operator Priority When multiple operators are used the following operator priority is used 1 Operator inside parenthesis 2 Negative Sign 3 4 Multiplication Division Remainder MOD 5 Addition Subtraction 6 Left Shift Right Shift 5 3x 4 5 3 4 vow 2 A B C D D X G PH 82 Expressing Numbers in Bits 3 ways of bit representation of numbers are possible with CUBLOC Binary 2 bit Decimal 10 bit and Hexadecimal 16 bit can be used Examples of how to Binary Decimal Hexadecimal amp B10001010 001001001 amp B10101 001100 10 1234 20 32 amp HA H1234 amp HABCD OxABCD 0x1234 1234 SABCD Similar to C Similar to Assembly Language 83 The BASIC Preprocessor The BASIC preprocessor is a macro processor that is used automatically by the compiler
200. new type of industrial controller By being able to do things that traditional PLCs couldn t through BASIC language we have expanded the horizons of both PLCs and BASIC micro computers Unlike some BASIC controllers out on the market today CUBLOC is fully backed by many Plug N Play peripherals such as our CuBASE industrial I O Boards and Plug N Play Relay8 Boards With these peripherals controlling DC AC devices becomes a walk in the park With 32 bit IEEE floating point math support and MODBUS ASCII and RTU support the user will find one of the most advanced BASIC PLC hybrid chip on the market today Another analogy to real life would be to automobiles Do you have a very small fast car Or do you have a monster truck How would it be to use an SUV Yes CUBLCC is sort of like an SUV in the automobile world You have the best of the worlds Although it s not as fast as a raw MCU you can take advantage over the overall development cost and time using our Plug N Play peripherals or a simple serial cable to program the modules 18 LADDER LOGIC and BASIC The biggest advantage of LADDER LOGIC is that all circuits are processed in Parallel meaning they are all processed at the same time PO P2 P9 A P3 P5 P6 P8 sC HH As you can see above both A and B circuits are in a waiting state ready to turn output On as soon as input is turned On For example if input P3 turned On P9 would turn On In comparison BASIC processes cod
201. ng this command To not get affected by LADDER or BASIC we recommend stopping LADDER and all interrupts before using this command Udelay 100 Delay about 1630 micro seconds 199 Usepin Usepin I O In Out AliasName VO I O Port Number 0 255 In Out In or Out AliasName Alias for the port Optional This command Usepin is used to set the I O pins status and alias name for LADDER program Please use this command to set the I O ports pins before using them in LADDER Usepin 0 IN START Usepin 1 OUT RELAY Usepin 2 IN BKEY Usepin 3 0UT MOTOR 200 Utmax UTMAX variable Variable Variable for decrement No String or Single Increment the variable by 1 When maximum is reached the variable is no longer incremented The Maximum here refers to the variable s maximum value In the case with Byte the maximum would be 255 and in the case with Integer the maximum would be 65535 Utmax A Increment A by 1 201 WaitTx WAITTX channel channel RS232Channel 0 3 This command WaitTx will wait until the send buffer is flushed This one command accomplishes same functions as shown below OPENCOM 1 19200 0 100 50 PUTSTR 1 ILOVEYOU CR DO WHILE BFREE 1 1 49 Wait until all data have been sent LOOP By using WaitTx the process of sending data becomes simpler as shown below OPENCOM 1 19200 0 100 50 PUTSTR 1 ILOVEYOU CR WAITTX 1 Wait until all data have been sent When t
202. o IP 192 168 1 26 Part 10001 Monitoring P pe aiin Hd LE Hx v PO PIS o 00 1 2 3 a eg eg et if 12 13 0 14 15 PIGP31 00 16 97 o o 21 o o o0 28 25 26 27 28 28 030 04 P32 P amp 00 12 90 45 36 9 10 9 00 40 541 42 343 44 4506 47 P48 P53 00 40 49 590 151 O52 59 054 55 oo 556 057 58 259 60 01 02 03 P tp78 oo Ced 65 766 67 68 09 20 74 00 72 7 n 75 16 n n Pod s 10001 3345 312 CuMAX232 CUBLOC XPort Linker v 0 0 14 ie Send RESET You can click on Start Monitor to see the monitoring screen P M F and other relay status can be seen in real time Select Open File select an CUBLOC object file and press Download And now you have the ability to upgrade your CUBLOC module without actually being there For more detailed information and updates please check out CUBLOC forum at http cubloc com Please refer to Max s XPORT Applications our forum END 313 NOTE 5 Sound Bytes In this application note 1 will be showing you simple ways to create key touch sound musical notes and alert sound An I O port or a PWM Channel of CUBLOC can be used for sound With a PWM Channel you have the advantage of creating different tones of sounds O souT VIN O sin VSS O ATN RES VSS VDD E PO P15 B P1 P14 o P2 P13 Speaker 0 047uF pa P12 P4 P11 Li P5 P10 P6 P9 deg Pep mm The above example shows PWM Channel O of CB220 being used with Freqout command to produce a sound
203. oad RS232 Channel is a 4 pin type connector and RS232 Channel 1 is a 3 pin type connector as shown below You can connect them to the PC SIDE RS232 Pins as shown below GND DTR TD RD GND PC SIDE RD 284 Download Monitoring RS232 Channel 1 Relays Relays that can be used in CUTOUCH are shown below CUTOUCH has same structure as the CB290 Relay Range Units Feature Input Output Relay PO P127 1 bit Interface with P external devices Internal Relay M MO M1023 1 bit Internal status Special Relay F FO F127 1 bit System status Timer Relay T TO T255 16 bit 1 Word Timers Counter C CO C255 16 bit 1 Word Counters Step Enable S S0 S15 256 Steps 1 Step enable Byte Data D D0 511 16 bit 1 Word Data Storage P M F is in units of bits and T C and D are in units of Words To access P M and F in units of Words please use WP WM and WF respectively Relay Range Units Feature WP WPO 7 16 bit 1 Word P Access in units of Words WM WMO WM63 16 bit 1 Word M Access in units of Words WF WFO WF7 16 bit 1 Word F Access in units of Words WPO is equal to PO through P15 put together PO is placed in the LSB Least Significant Bit and P15 is placed in the MSB Most Significant Bit Commands like WMOV can be used to easily manipulate these relay areas WPO eis Po WP1 es po WP2 em WP3 m
204. of Cubloc Studio as firmware of the modules are upgraded along with our software Please check www comfiletech com often for latest Manual Please make sure to insert the Cubloc module correctly as inserting it upside down can cause damage to the chip Please be aware that our 1 Year Warranty only covers defective items Special thanks goes to Alexandre Braun amp Lextronics for applications on the Forum Batman for applications on the Forum Mauro Russo amp Uniplan Software srl Italy for User Manual Revisions Steve Yang amp Mr Bill Ebert for Modbus RTU Spence for website links and website bugs Table of Contents CHAPTER 1 CUBLOC GETTING STARTED cssssssssssssssssscccsssssnssssssossssccssssssnnnsssoooossseee 15 What is GCUBLOG rr TEETH 16 LADDER LOGIC and BASI Ein iia ii 19 Multi tasking of LADDER and BASIC eese 21 Advantages of On Chip PLC Embedded Computer ess 23 Development Environment eere rennen nnne rhe en in 25 Download and Monitoring through the Internet eene 26 Hints for traditional PLC User seseee Hee 27 Hints for Micro Controller User eee 28 CUBLOC s Internal Structure eeeeseeeenen Henn 29 CUBEOC Periphetals 7 2r reine una eere ect eher Ene 30 CHAPTER 2 HARDWARE cccsssccssssssccsssssnssssssosssssessssssnnusssoossssseesesssnnnssssoesssecesessnnnsessooossssees 33 Hardware Featt res
205. or this command MUST support battery backup CB290 In comparison CTU command will lose its count value when the module is powered off PI KCTU CO 100 i UC N 100 pulse PO P1 ve Use RESET to set the counter to 0 at the Power off amp on beginning When using this command for the very first time please use the RESET signal to reset the counter value Otherwise counter will start at the last value it was set random if not set before KCTD This command is exactly same as CTD command except this command will be able to remember counter value when module is powered off The module used for this command MUST support battery backup CB290 In comparison CTD command will lose its count value when the module is powered off KCTU KCTD must be used with modules that support Battery Backup such as the CB290 381 Comparison Logic Compare 2 Words 16 bit or 2 Double Words 32 bit values and turn on Output when the conditions are satisfied Comparison Data Types Explanation Command S1 s2 Word 16 bit When s1 and s2 are same Output turns ON lt gt s1 s2 Word 16 bit When si and s2 are different Output turns ON gt s1 s2 Word 16 bit When s1 gt s2 Output turns ON lt s1 s2 Word 16 bit When s1 lt s2 Output turns ON gt s1 s2 Word 16 bit When s1 gt s2 Output turns ON lt s1 s2 Word 16 bit When s1 lt s2 Output
206. order to block noise the user can implement a circuit diagram similar to one shown below By using a photocoupler the user is able to raise the voltage and minimize the noise from affecting the switch DC24V DC5V o 2 2Kohm s l wk O re CUBLOC I O PC 18T1 10Kohm wae ZIT lt END gt 301 NOTE 2 Keypad Input Application note 2 will cover a 4 by 4 Keypad by taking its input and outputting the results to a 4 digit 7 segment module CSG module CB280 E ri Cl a P8 0 1494897 I L1 121 Ll P9 PO pe o e P1 12157799 4 gh gh P2 2207109 4 gh v4 P3 E P4 P5 P6 P7 The CSG module is a 4 digit seven segment LED module that can be connected via CUNET or 12C protocol to display numbers and custom characters Emi mim 0 0 0 0 GHD 5V SCL SDA n cs 4S COMFILE lt Filename csgprint cul gt Const Device CB280 Set I2c 9 8 Dim I As Byte Do Csgdec 0 I gt ese E Loop 302 If you connect CUNET to CSG and execute the above program the CSG module will show numbers that will count up The key matrix can be read easily through the command KEYPAD If you look carefully at the keypad you will see that scancode does not match the actual key pressed In order to read the correct key we will use a KEYTABLE before outputting the value to the CSG lt Filename keypadnum cul gt Con
207. ory space is 80KB BASIC can use the whole memory or LADDER may use the whole memory As long as the BASIC and LADDER program total is within 80KB the user is free to program as he she wills CB2XX series allow 80KB future models will have more memory I O ports 5 can be used both by BASIC and LADDER The user must specify I O ports to use in LADDER and BASIC All I O ports can be used in LADDER or BASIC 29 CUBLOC Peripherals PROTO BOARD Series Proto boards for CUBLOC can be used for testing and debugging your future products before starting PCB artwork or production These proto boards all include basic power and interface circuits BASE BOARD CUBASE Series Base boards for CUBLOC BASE Board are especially geared for the industrial field applications Simply attach our Plug N Play relays to the output ports for implementing solenoids magnetic switches and etc With 24V input ports and DIN RAIL Mount Brackets the user does not have to re invent the wheel by using CUBASE 30 STUDY BOARD Study board is geared for first timers and experienced developers to CUBLOC Peripherals for simple experiments including switches LED RS232 communication 12C piezo ADC toggle switches and LCDs are included We recommend the Start Kit for first timers which includes this study board a CUBLOC module necessary cables and a manual LCD DISPLAY Module CLCD GHLCD Series Various LCD displays are provided for us
208. ot be used to put append commands in CUBLOC BASIC Pals Eel a GSL Toortst A 1 Correct B 1 C 1 68 Variables There are 5 types of variables in CUBLOC BASIC e BYTE 8 bit Positive Number 0 255 e INTEGER 16 bit Positive Number 0765535 eo LONG 32 bit Positive Negative Number 2147483648 2147483647 e SINGLE 32 bit Floating Point Number 3 402823E 38 3 402823E 38 e STRING String 0 TO 127 bytes A Byte is an 8 bit positive number representing 0 to 255 An Integer is a 16 bit positive number representing 0 to 65535 A Long is a 32 bit positive or negative number representing 2 147 483 648 to 2 147 483 647 A Single is a 32 bit positive or negative floating point number representing 3 402823x10 to 3 402823 x 10 BYTE For storing negative numbers please use LONG or SINGLE Use DIM command for declaring variables as shown below Dim A As Byte Declare A as BYTE Dim B As Integer C As Byte Comma may NOT be used Dim STI As String 12 Set String size for String Dim ST2 As String Set as 64 bytes default Dim AR 10 As Byte Declare as Byte Array Dim AK 10 20 As Integer Declare as 2D Array Dim ST 10 As String 10 Declare a String Array VAR Command Same function as DIM VAR can be used in place of DIM to declare variables Below are examples of how to use VAR A Var Byte 7 Declare A as BYTE sST1 Var String 12 Declare ST1 as String of 12 bytes AR Var Byte 10 Declare
209. part of the screen becomes part of the button s area Menutitle MENUTITLE index x y string Index Menu index number Xy Title location based on left upper corner of button string Name of the menu Menuset only draws the box itself Use Menutitle command to set the name of the menu like shown here Menutitle 0 13 13 Gas Left Menutitle 1 16 13 Initialize Menutitle 2 13 13 Total Cost Gas left Initialize Total cost 277 Menucheck Variable MENUCHECK index touchx touchy Variable Variable to store results 1 if selected O if unselected Index Menu Index Number Touchx Touch pad x axis point Touchy Touch pad y axis point Use this command Menucheck to see which menu is selected Touchx and Touchy are the user s touchpad input points If the Menu is selected 1 is returned otherwise 0 is returned If Menucheck 0 TX1 TY1 1 Then Menureverse 0 Beep 18 180 End If Menureverse MENUREVERSE index Index Menu index number Selected menu box is inverted Initialize Total cost Menu Variable MENU index pos Variable Variable to store results 1 selected O unselected Index Menu Index pos Position 0 x1 1 y1 2 x2 3 y2 When you need to find the current status of Menu buttons set by Menuset command you can use Menu function to return the current status O will read x2 1 will read y1 2 will read x2 and3 will read y2 It s as though the MENU is accessed as 2 dimens
210. paste Similar to text editing you can press CTRL X to cut and paste also Please be aware that in LADDER editing UNDO is not supported 347 Monitoring CUBLOC STUDIO supports real time monitoring of LADDER LOGIC Click Here Aad d xa3uau Status of contacts that are ON will be displayed GREEN Timer and counter values will be displayed as decimal values You can control the monitoring speed by going to Setup Menu gt Studio option gt Monitoring speed When the monitoring speed is too fast it can affect CUBLOC s communications as monitoring takes up resources We recommend value of 5 for the monitoring speed CUBLOC studio c Weubloc_testWu3 1018 cul 1 File Edit Device Run Setup Help BSH GABE MA miu B m FI BASIC F2 LADDER Ladder Mnemonic rail j o 4 0 Monitoring El lt Stop TON T0 50 t mel M3 M30 HA M30 Qu JOG HI SPEED PULS 1 2 SPEED LOW END TIME TON T1 20 t magl E Modified Program 9602 Bytes Data 101 Please make sure to stop monitoring before editing or downloading 348 Time Chart Monitoring Click Here Bos ABM gt mu E El With Time Chart Monitoring you will be able to see Ladder Logic contacts as a time chart The minimum width of the time chart is 40ms You can use the Zoom control function to measure the width of each pulse after stopping Up to 8 relays can be monitored at one time
211. put pin for I2C and use two 4 7K resistors as shown below SCL SDA Some of the I O ports only support Input or Output Please check the pin data sheet for the model you are using 176 Set Ladder on off SET LADDER On Off Ladder is set to Off by default Use this command to turn On Ladder Logic The following is an example of such minimal BASIC code for Ladder logic Const Device CB280 Device Declaration Usepin 0 In START Port Declaration Usepin 1 In RESETKEY Usepin 2 In BKEY Usepin 3 0ut MOTOR Alias MO RELAYSTATE Aliases Alias M1 MAINSTATE Set Ladder On Start Ladder Do Loop BASIC program will run in infinite loop 177 Set Modbus Set Modbus mode slaveaddress mode O ASCII 1 RTU Currently only ASCII supported slaveaddress Slave Address 1 to 254 CUBLOC supports MODBUS protocol MODBUS can connect to RS232 Channel 1 Currently only ASCII Slave mode is supported internally RTU mode is NOT supported internally To enable MODBUS slave mode please use the Set modbus command This command set modbus is to enable the MODBUS slave It must come after OPENCOM command and only runs on RS232 Channel 1 Baurate bit and parity can be set with OPENCOM Opencom 1 115200 3 80 80 Please set receive buffer of at least 50 Set Modbus 0 1 ASCII Mode Slave Address 1 After this command CUBLOC responds automatically CUBLOC supports MODBUS commands 1 2 3 4 5 6 15 and 16
212. quires more than 100mA of current that can be supplied by the internal regulator please use a separate power supply Method 1 DC5 5 12V ERES d Method 2 DC5V 37 CB280 CB280 is in a 64 pin module package and 49 of those pins can be used for I O The CB280 does not have a 5V internal regulator SOUT 9 7 vob TX1 330 49 TTLTX1 SIN O 18 vss RX1 34 50 TTLRX1 ATN O i9 RES AVDD 350 6 s AVREF vss 020 NC NC 360 0 52 Pas SS PO 92 Pi ADCO P24 37 53 P31_ADC7 Input only SCK_P1 22 P17 ADC1_P25 38 54 P30_ADC6 MOSI P2 023 Pi ADC2 P26 39 0 55 P29 ADC5 MISO P3 624 P19 PWM3 ADC3_P27 40 55 P28_ADC4 pa 25 P20 PWM4_INTO P47 410 57 P32 PWMO_P5 26 P21 PWM5_INT1 P46 420 58 P33 PWM1_P6 27 P22_INT2 P45 430 59 P34 PWM2_P7 28 P23_INT3 P44 440 0 60 P35 CUNET SCL P8 29 P15_HCNTO P43 450 61 P36 CUNET SDA_P9 30 P14_HCNT1 P42 46 62 P37 P10 31 P13 P41 470 63 P38 P11 32 P12 P40 480 64 P39 The pin numbers below are categorized by features not by pin numbers Name Pin I O Port Explanation Block SOUT 1 OUT DOWNLOAD SERIAL OUTPUT SIN 2 IN DOWNLOAD SERIAL INPUT ATN 3 IN DOWNLOAD SERIAL INPUT VSS 4 POWER GROUND PO 5 1 0 SPI SS P1 6 Input SPI SCK P2 7 I O SPI MOSI P3 8 1 0 Block 0 SP MISO P4
213. r OFF ESC B 1B 42 2 Backlight ON Default ESC b 1B 62 2 Backlight OFF Default ESC H 1B 48 2 LOCATE 0 0 ESC L X Y 1B 4C xx yy 4 100 uS Change the position of the cursor ESC 1B 44 Code 11 Character code 8 through 15 is 8 D 8byte 8bytes custom characters that the user is free to create and use This command will store the bitmap in this custom character memory area Code 8 15 Character code 1 01 1 Move to beginning of row 1 2 02 1 Move to beginning of row 2 3 03 1 Move to beginning of row 3 4 04 1 Move to beginning of row 4 If received data is not a command the CLCD will display it on the screen When connecting RS232 maximum baud rate settings for 12V 4 pin level is 38400bps For 5V level 3 pin up to 115200bps can be used The following is an example code when using the CB280 to connect to the CLCD module through CUNET protocol CLCD will display increment of numbers Const Device Cb280 Set Display 2 0 1 50 Dim i As Integer Delay 100 cis Delay 200 ESTO 210 When you execute this program Set the SLAVE ADDRESS to 1 by manipulating the DIP switch Deloy forss bart 119 Ot CUCID Delay for initializing and clearing CLCD Locate 5 2 BLE ERE Wi Delay 500 Cls Delay 100 Do o dL Locate 0 0 Print COMFILE Locate 1 3 Print CUBLOC Dec i delay 100 Loop The slave address of CLCD and SET DISPLAY command should match 211 GHLCD G
214. ram Below is an example of simple BASIC program with Do Loop statement Dim A As Byte Do Byteout 0 A A A 1 Loop This program outputs to Port PO P7 an increasing value of A The next program uses a function to accomplish the same task Dim A As Byte Do Byteout 0 A A ADD_VALUE A Loop End Function ADD VALUE B As Byte As Byte ADD VALUE B 1 End Function By separating A A 1 to a function the user will be able to separate one big program into small chunks As you can see here the main program ends when END comes and functions are added afterwards MAIN PROGRAM SUB FUNCTION Sub routine SUB 62 Sub and Function For sub routines you can either use Sub or Function Sub does not return any values whereas Function does return values Sub SubName Paraml As DataType ParamX As DataType Statements Exit sub Exit during sub routine End Sub Function FunctionName Paraml As DataType As ReturnDataType Statements Exit Function Exit during sub routine End Function To return values using Function simply store the final value as the name of the Function like shown here Function ADD VALUE B As Byte As Byte ADD VALUE B 1 Return B 1 End Function 63 Global and Local Variables When you declare variables inside a Sub or Function it is considered to be a Local variable The Local Variables are created upon call of the Sub or Function and removed
215. raphic LCD GHB3224 Series GHLCD is able to display characters and graphic on 3 different layers Unlike our CLCD the GHLCD supports many different commands for easy drawing of lines circles and boxes There are also commands such as Copy cut paste and a graphic software CuCanvas for downloading BMP images to the GHLCD min Wa COLD Egg f me tea ACNE TREATMENT ol The GHB3224 model is a black and white STN type LCD with display area of 320 by 240 pixels There are 3 layers The first layer is for text and the other 2 layers can be used for graphics GHLCD Library is 100 compatible with CUTOUCH modules Layer1 212 The text layer size is 40x15 as you can see in the below grid Each character size is 8 by 16 TTT TTT TTT ETT 10 LTT TTT TTT TT TTT ETT ET ette ee od rro 14 OEE STE ToT For graphics 320 by 240 pixels are provided for the GHLCD series 0 319 239 Please note that graphics or characters will be printed in random places when trying to print outside the specified range of pixels shown here With the graphic layer you have a complete control over where to display graphics over the 320 x 240 pixels 213 With the text layer you can display text over the specified text pixels of 40 by 15 We recommend to draw the background in the graphic layer and to print characters in the text layer GHB3224C supports CuNET GHB3224C model support CuNET When using C
216. rce Const Device cb280 Opencom 1 115200 3 80 80 set modbus 0 3 Usepin 2 Out Usepin 3 Out Usepin 4 Out Set Ladder On Master Slave RS232 TX RX RS232 P2 CH1 CH1 P3 RX TX P4 GND GND CB280 CB280 When the Slave finishes processing the Data sent by the Master the Slave will jump to the label GETMODBUS We can use SET UNTIL command to check for ending code LF 10 Then Getstr command is used to store all received data in RDATA The data in RDATA can be analyzed to verify if the communication was achieved soundly or not When the slave is not connected the program will never jump to GETMODBUS 265 MODBUS Master Mode RTU The following is an example of RTU Master Mode implemented in CUBLOC BASIC to read floating point values 2 Word Registers from multiple RTU slave devices Const Device CB280 define CHANNEL 1 define REDE 10 Pin number of REDE transmit receive signal Reales LOr MODUS a a i Se SSS Dim a As Integer ct As Byte Dim msg 8 As Byte Dim rmsg 100 As Byte Dim Result 100 As Single Dim ID As Byte Dim DataLength As Byte Dim LabelStr As String Dim DLength As Byte Dim mode As Byte Dim N As Byte Number of meters Dim K As Byte vVartables fOr ORO Celeron gt gt 3253252525 gt 5 Dim uchCRCHi As Byte uchCRCLo As Byte Dim dLen As Byte Dim uIndex As Integer Dim CRC As Integer Dim CRC2 As Integer Change this table and variable N to control multiple
217. read the data received If the receive buffer is full it will not be able to receive any more data To avoid these situations receive interrupts should be used or plenty of receive buffer size should be used 112 Dim A As Byte Opencom 1 1920050 100750 On Recvl DATARECV RTN When data is received through RS232 jump to DATARECV RTN Do Loop infinite loop DATARECV RTN If Blen 1 0 gt 0 Then If there is at least 1 byte A Get 1 Read 1 Byte End If Return End Interrupt routine Bytein Variable BYTEIN PortBlock Variable Variable to store results No String or Single PortBlock I O Port Block Number 0 15 Read the current status of the I O Port Block 8 I O pins ports are collectively called as a Port Block Pin 0 7 is Block O and Pin 8 15 is Block 1 Depending on the model of CUBLOC the Port Block number can vary When using this command all I O pins within the Port Block are set to input and the received input value is stored in a variable DIM A AS BYTE A BYTEIN 0 Read from Port Block 0 and store in variable A The following is how Port Blocks are set according to the CUBLOC model sour Y SIN ATN vss 1 2410 VIN 2 231 vss 3 22D RES 4 21 vob 5 20H P15 6 190 P14 7 8 BLOCK 0 P3 170 P12 BLOCK 1 kl S apooconoocoodd o TTLTX1 TTLRX1 AVREF P48 P31 P30 P29 3 SOUT 10 17 vob SIN 20 18 vss ATN 30 O 19 RES vss 40 20 wc PO 50
218. rements Word value in d by one DWINC increments Double Word value in d by one WDEC decrements Word value in d by one DWDEC decrements Double Word value in d by one Usable Relays P M F S C AN D Constants d O O 0 START WMOW 100 DO 1 ACTION WINC DO D t 1 Below is result of LADDER execution of 99 O UUUU WN HC 389 WADD DWADD WADD si s2 d DWADD si s2 d Add s1 and s2 and store result in d WADD is for Word values and DWADD is for Double Word Values Usable Relays P M F S C T D Constants s1 O O O Oo s2 O O o Oo d O O O WSUB DWSUB WSUB si s2 d DWSUB si s2 d Subtract s2 from s1 and store result in d WSUB is for Word values and DWSUB is for Double Word Values Usable Relays P M F S C T D Constants s1 O O O O s2 O O O Oo d O O O START WMOV 100 DO A ee 1 ACTION WSUB DO 5 DI t 1 D1 gets 95 in the above LADDER diagram 390 WMUL DWMUL WMUL si s2 d DWMUL si s2 d Multiply s1 and s2 and store result in d WMUL is for Word values and DWMUL is for Double Word Values Usable Relays P M F S C T D Constants si O O O O s2 O O Oo O d O O O START WMOV 1234H DO 1 ACTION WMUL DO 1234H D1 1 The result of 1234H 1234H is stored in D1 as a double word of 14B5A90H START DWMOV 123456H D
219. rictions you must be aware of PWM Channel 0 1 and 2 use the same timer If PWM Channel O is used for Freqout command channel 0 1 and 2 all cannot be used for PWM command 133 Likewise PWM Channel 3 4 and 5 act the same If you use Freqout on PWM Channel 3 PWM Channels 3 4 and 5 cannot be used for PWM command You can product different frequencies on PWM Channel 0 and 3 To sum up the user may produce two different frequencies at one time and when using the Freqout command the PWM command cannot be used The following is a chart that shows corresponding FreqValue to the music notes Note Octave 2 Octave 3 Octave 4 Octave 5 A 20945 10473 5236 2618 Bb 19770 9885 4942 2471 B 18660 9330 4665 2333 c 17613 8806 4403 2202 Db 16624 8312 4156 2078 D 15691 7846 3923 1961 Eb 14811 7405 3703 1851 E 13979 6990 3495 1747 F 13195 6597 3299 1649 Gb 12454 6227 3114 1557 G 11755 5878 2939 1469 Ab 11095 5548 2774 1387 Freqout 0 5236 Note A in Octave 4 440Hz 134 Freqout 0 1469 CH 4156 D 3703 F G 3144 2 A 2471 Es x Note G in Octave 5 C 2078 D 1851 C D E 4403 3923 3495 O gt Ww 3299 C D 202 1961 E 1851 Get Variable GET channel length Variable Variable to store results Cannot use String Single channel RS232 Channel 0 3 length Length of data to receive 1 4 Read data f
220. rmsg 6 ct 4 Result ct bytel rmsg 3 ct 4 Result ct byte0 rmsg 4 ct 4 Option 2 Depending on your RTU slave device Result ct byte3 rmsg 3 ct 4 Result ct byte2 rmsg 4 ct 4 Result ct bytel rmsg 5 ct 4 Result ct byte0 rmsg 6 ct 4 Debug Dec ct 3 Hloat resulle ct 7 Cn Debug hex8 result ct Cxr Next This part calculates CRC for received values uchCRCHi OxFFE uchCRCLo OxFF For dLen 0 To DataLength 2 uIndex uchCRCHi Xor rmsg dLen calculate the CRC uchCRCHi uchCRCLo Xor auchCRCHi uIndex uchCRCLo auchCRCLo uIndex Next CRC uchCRCHi lt lt 8 Or uchCRCLo CRC2 rmsg DataLength 1 256 rmsg DataLength Debug Response from RTU Device ID Dec ID Cr Debug cr Calculated CRC hex4 CRC Debug Received CRC hex4 CRC2 Cr If CRC CRC2 Then For ct 0 To 15 Debug Floating Point Value Reg Debug Dec ce M BioaceResult ct Cr Next End If End If Return PONGO KOTORA Od a A a CheckState 100 is the period so this would be 10ms 100 1000 ms OR 1 sec This means the RTU devices will be checked every 1 sec 5 is the time between sending to the devices Since RS485 cannot send and receive simultaneosly in this app I can use this to control the time between sending commands Try to make it fast as possible but send AFTER receiving response If clock mod 100 K 5 Then Debug Cr sending to RTU Devic
221. rom RS232 port This command Get actually reads from the receive buffer If there is no data in the receive buffer it will quit without waiting for data The command BLEN can be used to check if there is any data in the receive buffer before reading trying to read data The length of data to be read must be between 1 and 4 For receiving a Byte type data it would be one For receiving a Long type data it would be 4 For larger data please use GETSTR TIPS Use SYS 1 after GET or GETSTR to verify how much data was actually read If 5 bytes were received and only 4 bytes got verified 1 byte was lost Const Device cb280 Dim A as Byte Opencom 10115200737 50 10 On Recvl gosub GOTDATA Do Do while In 0 0 Loop Wait until press button Connect P0 Put 1 esc H ju Put asc y Pur Posset hd Pub aso ULA T pe Sc PUC dy abs 3E HELLO chr 13 chr 10 Bue AL 110 1 Do while In 0 1 Loop Loop GOTDATA A Get 1 1 Debug A Return 135 Getstr Variable GETSTR channel length Variable String Variable to store results channel RS232 Channel length Length of data to receive Same as Get except the variable to store results can only be String and length of data is not limited Const Device cb280 Dim A As String 10 Opencom 1 115200 3 50 10 Set Until 1 8 On Recvl Gosub GOTDATA Do Do While In 0 0 Loop Wait until press button Connect PO EUES TA CUBOS CE Do While In 0 1
222. rom a switch and processes it to its assigned task We will make a START and STOP button that will light a lamp ON and OFF START eL STOP KEY e 10Kohm AA 330ohm As you can see above PO and P4 ports will be connected to a pull down resistor resistor attached to ground CB220 will read these switches as LOW or OFF when the switch is not pressed To find out if these switches are pressed or unpressed we can use CUBLOC BASIC command IN Filename startstopkey cul gt Const Device cb220 Dim a As Byte Do If In 0 1 Then a 1 If In 4 1 Then a 0 Out 14 a Loop When the switch is pressed a bouncing effect occurs from the switch s mechanical spring 300 The above picture shows how bouncing can confuse CUBLOC controller by bouncing up and down To get rid of this bouncing effect a capacitor and resistor can be added to filter it out A simpler method is to use the command KEYINH rather than IN which will remove the bouncing effect by software Filename keyinhinput cul gt Const Device cb220 Dim a As Byte Do If Keyinh 0 20 1 Then a 1 If Keyinh 4 20 1 Then a 0 Out 14 a Loop The 2 parameter of KEYINH O 20 sets the time for removing the bouncing effect also called debouncing time In other words the 20 means to wait 20ms before accepting input For the industrial field there can be a lot of noisy environments where it can affect the switch signals In
223. rx 127 420 EEMWRIIE eee 130 420 EKEYPAD creia erc 131 420 A ule nivem 223 ELLIPSE tics 223 420 EXP ME 96 express binary and hexadecimal Uam xcr e weed EUe ue a px enin E Ore 384 F EABS cama ra 97 Flash Memory esee 34 ELO A Toi 98 FLOOR nt inicien ipat ia i iia 97 FMOV ciii mde aneii sevens 387 FONT oinaan edes 219 420 FOR NEXT ni ena 132 FREQOUT miiie 133 420 function code 256 Function Relays 357 G GET nep Ire 135 421 GETA 5 hein 137 421 GETSTR EE 136 421 ln ree nere 212 GHB3224 DIP Switch 232 Cl A iIRRIees 32 212 GLAYER AA 217 421 GLOCATE re 223 421 GMOV ziii etu 388 GOSUB cdo 138 GOTO rro 138 398 GPASTE reel 230 421 GPOP Aaina ipaa 229 421 GPRIN TE 1o eere eee 224 GPUSH icons 229 421 H hex icones eere ipe rene 98 HIGH eem 139 421 HIGH Z X eri tts 143 A O 99 HPA is 231 HPOP iiie niin 231 421 HPUSH aite 231 421 Hyperbolic Cos 96 Hyperbolic Sin 96 Hyperbolic Tan ss 96 I O ports nirai 36 O IE 248 I2CREAD en 141 421 I2CSTART Tiitii ieg 140 421 I2CSIOP iei 140 I2CWRITE 141 422 430 If Then Elseif Else EndIf 142 Nar n 143 422 INCR oan miii 144 422 INPUT rient 145 422 input only pin seeren 45 resonantes recado 153 Integer 69 Internal Relay 358 interrupt Pasuri irinen
224. s A pulse of 1 5ms will stop the RC servo at O Degrees A pulse of 2ms will stop the RC servo at 45 Degrees Depending on the RC servo you use these specification will vary Filename rcservo cul gt Const Device CB280 Low 5 Pwm 0 2500 32768 When the code above is executed a 1ms pulse will be outputted from port number 5 RC servo will position itself to 45 degrees Const Device CB280 Low 5 Pwm 0 4000 32768 When the code above is executed a 1 5ms pulse will be outputted from port number 5 RC servo will position itself to 45 degrees As you can see by simply change the duty value of PWM command RC servo can easily be controlled For the CB220 3 RC servos can be controlled simultaneously while the CB280 and CB290 can control 6 RC Servos Warning When the RC servo is in operation it will need about 500mA of current please make sure to use a power supply of at least 500mA END 320 NOTE 8 DS1620 Digital Thermometer The DS1620 is a digital thermometer The chip internally has a temperature conversion table so the user does not have to make a separate conversion table Temperature range between 55 and 125 degrees Celcius can be obtained by the DS1620 in units of 0 5 Degrees SOUT VIN SIN vss ATN RES vss VDD Po P15 P1 P14 P2 P13 P3 P12 P4 P11 P5 P10 P6 P9 P7 PB CB220 7 capas TT MEE na vDD cik TH RST T LO meno T COM DS1620 c Fi
225. s numbers or included a blank space Below are some not to do examples Ladder Reserved constant 1237 Number Aboot 10 Blank space 138 High HIGH Pin Pin 1 O pin number Set the pin to HIGH state This command sets the pin to output state and outputs HIGH or 5V OUTPUT 8 Set pin 8 to output state HIGH 8 Set pin 8 to HIGH 5V When a port is set to High the port is internally connected to VDD whereas if it S set to Low the port is internally connected to VSS 139 I2Cstart I2CSTART Set I2C SDA and SCL to Start mode After this command SDA and SCL go LOW I2Cstop I2CSTOP Set I2C SDA and SCL to Stop mode After this command SDA and SCL go HIGH 140 I2Cread Variable 12CREAD dummy Variable Variable to store results No String or Single dummy dummy value Normally 0 Read a byte from the I2C pins set by SET I2C command Use any value for dummy value A I2CREAD 0 I2Cwrite Variable I2CWRITE data Variable Acknowledge 0 Acknowledged 1 No Acknowledgement data data to send Byte value 0 255 Send one byte of data through I2C This command creates Acknowledge pulse and returns O if there is acknowledgement and 1 if there isn t If there is no acknowledgement it could mean two things Either I2C lines are not connected properly or power is not supplied correctly In case this happens please setup an error processing function such as below IF I2CWRITE
226. s WM 0 WM 31 M Relay Word Access _T Words _T 0 T 99 T Relay Timer C Words _C 0 C 49 C Relay Counter _D Words _D 0 D 99 D Relay Data Relay P and M can be accessed in units of bits and the rest relays C T and D can be accessed in units of Words To access P and M relays in units of Words use WP and _WD For example _WP 0 represents PO through P15 The following is an example program DO 1234 _D 1 3456 _D 2 100 FOR I 0 TO 99 _M I 0 NEXT IF P 3 1 THEN M 127 1 Reversely accessing BASIC variables from Ladder is not possible but you can use Ladder interrupts to get around this 92 Use Ladder pins in BASIC using ALIAS command ALIAS command can be used to set aliases for relays all except D used in LADDER Both BASIC and LADDER may freely use these set aliases Usepin 0 In START Usepin 1 0ut RELAY Alias MO MOTORSTATE Alias M1 RELAY1STATE Alias T1 SUBTIMER RELAY 0 Set pone TITOLON MOTORSTATE 1 ES SERMONES ame IS NM A RELAY1STATE 1 Store MI status in variable A B SUBTIMER Store T1 status in vari db able B 93 MEMO Chapter 5 CUBLOC BASIC functions Math Functions SIN COS TAN Return Sine Cosine and Tangent values CUBLOC uses radians as units Use SINGLE for most precise results A SIN B Return Sine value A COS B Return Cosine value A TAN B Return Tangent value ASIN ACOS ATAN Return Arc Sine Arc Cosine and Arc T
227. s as parameters Function ARRAYUSING A 10 AS Integer Arrays may not be used as parameters End Function But you may use one element of an array as a parameter Dim b 10 as integer K ARRAYUSING b 10 Use 10 element of array b as a parameter Function ARRAYUSING A AS Integer as integer End Function All subroutines parameters are Call by value meaning the values are only used as reference Even if the parameter value is changed within a subroutine it will not affect the actual variable used as a parameter like shown here Dim A As Integer Dim K As Integer A 100 K ADDATEN A Debug Dec A Dec K CR A is 100 and K is 110 End I Sub ADDATEN V As Integer V 2V 10 y ADDATEN V End Sub A does not change when V is changed 67 In contrast there is Reference by Address in which the actual Data Memory address is passed to the subroutine CUBLOC only supports Call by Value Too many characters in one line If you run out of room you can use an underscore character _ to go to the next line like shown here ST COMFILE TECHNOLOGY ST COMFILE _ TECHNOLOGY Comments Use an apostrophe to add comments Comments are discarded during compile meaning it will not take up extra Program Memory ADD VALUE B 1 Add 1 to B Comment Nested subroutines Nested subroutines are supported in CUBLOC A FLOOR SOR F Do Floor on SQR F Colons Colons may n
228. s returned Likewise if DATA1 1 is read ASCII code of U is returned Whole and floating point numbers can be used as shown next CONST INTEGER DATA1 6000 3000 65500 0 3200 CONST LONG DATA2 12345678 356789 165500 0 0 CONST SINGLE DATA3 3 14 0 12345 1 5443 0 0 32 0 For multi lines of constants following ways can be used 1 CONST BYTE DATA 31 25 102 34 1 0 0 0 0 0 65 64 34 12 123 94 200 0 123 44 39 120 239 SL dis Sh 200 Oi Mase wa SO Zs Sie 2 CONST BYTE DATA2 31 25 102 34 1 0 65 64 34 ipi 1s Aa S6 12 Ssh 3 Strings can be used as shown next CONST STRING 6 STRTBL COMFILE BASIC ERROR PICTURE 78 Please set the size of the String to be greater than any of the members of the constants Only 1 dimensional array is allowed for constants Comparison Array Constant Array Storage Data Memory SRAM Program Memory FLASH Stored Time During Program run During Download Can be Changed Yes No Purpose Changing Values Unchanging values Power OFF Disappear Kept 79 Operators When using many logical operators the below priority table is used to determine which operator is operated on first Operator Explanation Type Priority A To the power of Math Highest MOD Multiply Divide MOD Math Add Subtract Math lt lt gt gt Left Shift Right Shift Logic lt gt lt
229. sed for other purpose when using this command For ports not used within the output Port Block they can be left in OPEN state This pin also may not be used for other purposes The following is an example of using Port Block O as input and Port Block 1 as output ETERN m i If no keys are pressed 255 will be returned Otherwise the pressed key s scan code will be returned 131 For Next FOR NEXT will loop the commands within itself for a set amount of times For Variable Starting Value To Ending Value Incremental Step Commands Exit BOE Next In the below example Incremental Step is not set FOR NEXT loop will increment 1 every loop as default Dim K As Long For K 0 To 10 Debug Dp K CR Next For K 10 To 0 Step 1 E Debug Dp K CR Negative Step step from 10 to 0 Next EXIT FOR command can be used within the FOR NEXT loop to exit any desired moment For K 0 To 10 Debug Dp K CR If K 8 Then Exit For If K equals 8 exit the FOR NEXT loop Next When choosing a variable to use for FOR NEXT loop please make sure the chosen variable is able to cover desired range Byte variables can cover from O to 255 For larger values a variable with larger range must be chosen Dim K As Byte For K 0 To 255 Debug Dp K CR Next When using negative STEP please choose LONG as it can handle negative numbers Dim LK As Long For LK 255
230. sition 0 3 data Data amp h30 to amp h39 amp h41 amp h46 amp h30 is print 0 amp h31 is print 1 amp h39 is print 9 amp h41 is Print A amp h42 is Print b amp h46 is Print F Display the desired number to the specified CSG module DATA most upper bit is for setting the DOT of the CSG You can use amp H30 39 and amp H41 amp H46 only 235 Csgxput CSGXPUT slaveadr digit data slaveadr CSG module Slave Address digit Position 0 3 data Data Set the LED ON at the specified position When displaying anything other than numbers this command can be used to control each position of the LED itself A zem G ay LI moe Y py D Bit 7 6 5 4 3 2 1 0 LED H G F E D C B A To print character L positions D E and F must be turned ON Since the bit value would be 0011 1000 in hex that s amp H38 or 0x38 CSGXPUT 0 0 amp H38 would be the exact command to use Csgdec CSGDEC slaveadr data slaveadr CSG Slave Address data Data Print decimal value to the CSG Csghex CSGHEX slaveadr data slaveadr CSG Slave Address data Data Print hexadecimal value to the CSG 236 Chapter 8 Interface Input Output Circuits How to connect LEDs Please connect the LED as shown below and output HIGH to the connected I O port to turn the LED ON 330 ohm z CuBLOC 1 O Port How to connect push switches Please connect the push switch as s
231. source code Object file is strictly binary format file so others cannot reverse engineer it You can use Download from Object File to download your object file to CUBLOC Create object files for internet downloading with CuMAX or CuMAX Server Print Ladder Logic Section only Print Basic Section only Setup Printer for printing Ladder Logic Section Download an Object file to the CUBLOC module Switch to Basic Section for editing Or press F1 Switch to Ladder Logic Section for editing Or press F2 View last 4 files edited Exit CUBLOC Studio Run Menu fun Ctrl A Reset Ladder Monitor on BASIC Debug Terminal Time Chart Monitor clear CUBLOC flash memory Miew Relay Usage Ctrl F Menu Run Reset Ladder Monitor on BASIC Debug Terminal Explanation Compile Basic and Ladder download to CUBLOC module if there are no errors and restart the program automatically To disable automatic restart please go to Setup gt Studio Option to change Reset CUBLOC Module Start Ladder Monitoring Open BASIC Debug Terminal Window This window opens automatically when there s a DEBUG command in the source code Clear CUBLOC s Flash Clear CUBLOC s Flash Memory Memory View Relay Usage Setup Menu After Compiling View relay usage of Ladder Logic PLC Setup Wizard PC interface setup Editor environment setup Studio Options Use Korean menu Firmware download Menu PLC Setup
232. st Device CB280 Set I2c 9 8 Dim I As Integer Dim K As Integer Const Byte KEYTABLE 1 4 7 10 2 5 8 0 3 6 9 11 12 13 14 15 Do I Keypad 0 IEIS TE Then I KEYTABLE I Csgdec 0 I EDG LE Loop And now we will make a simple program that receives input When a number key input is received it is displayed to the CSG module as a 4 digit number The number is stored into the variable K which is in BCD code We then use the function BCD2BIN to convert the BCD value back into binary lt Filename num4in cul gt Const Device CB280 Set T2098 Dim I As Integer Dim K As Integer Dim M As Integer EMO Const Byte KEYTABLE 1 4 7 10 2 5 8 0 3 6 9 11 12 13 14 15 Do I Keypad 0 OSEE onem I KEYTABLE 1 If I lt 10 Then K K lt lt 4 Ke Kee Csghex 0 K End If WAIT UNTIL KEY DEPRESS 303 Do While Keypad 0 255 Loop M Bcd2bin K Debug Dec M CR pixel Ake Loop When there is no input the returned scancode is 255 By using Do While keypad 0 lt 255 we will wait until a key is unpressed which will return a scancode of 255 This is to let the processor stop reading input while a key is pressed Otherwise the processor might receive multiple key inputs since execution time of CUBLOC is very fast By using _D 0 M you can pass the scancode value to relay DO of LADDER LOGIC If you need to use a keypad in LADDER you can modify this code a little bit to get your results quick lt END gt 304
233. st Device CB280 Usepin 0 In START Usepin 1 In RESETKEY Usepin 2 In BKEY Usepin 3 0ut MOTOR Alias MO RELAYSTATE Alias M1 MAINSTATE Do LadderScan Loop Device Declaration Port Declaration Aliases Low LOW Pin Pin I O pin number 0 255 Set the pin to LOW state This command sets the pin to output state and outputs LOW or OV GND OUTPUT 8 Set pin 8 to output state LOW 8 Set pin 8 to LOW 0V When a port is set to High the port is internally connected to VDD whereas if it s set to Low the port is internally connected to VSS 149 Memadr Variable MEMADR TargetVariable Variable Variable to store results No String or Single TargetVariable Variable to find physical memory address Like C language you can use pointers in BASIC By using pointers you will be able to find the physical memory address of RAM and use it to store or read data Dim A as Single Dim Adr as Integer Adr Memadr A Return the physical address of A 150 Ncd Variable NCD source Variable Variable to store results No String or Single Source source value 0 31 The command NCD can use used to set desired bit of 0x00000000 to 1 and return a 32 bit value NCD NCD NCD Shien NCD NCD NOD NCD HHHHHHHH do0oU 0 NBDPO Result Result Result Result Result Result Result Result is is is is is is is is 00000001 00000010 00000100 00001000 00010
234. t Layer 3 mode 0 off 1 on 2 flash Set the mode of the specified layer The flash mode will flash the layer at 16Hz Layer 1 and 2 are ON and Layer 3 if OFF when LCD is first turned ON Use this command to hide the process of drawing lines circles and etc Set the layer OFF when drawing and set the layer ON when you are finished drawing everything 216 GLayer GLAYER layernumber Layernumber Set the graphic layer 0 1 2 There are 3 layers of GHLCD GHB3224 series One of the layers may be used as graphic layer Graphic commands such as LINE CIRLCLE and BOX can be used for the layer set a the graphic layer Normally Layer 1 is used for text while Layer 2 is used for graphics Layers 2 and 3 have slight different characteristics We recommend Layer 2 for graphics that require a lot of erasing Layer 1 can also be used as graphic layer In this case you can even erase text characters with graphic commands To set Layer 3 to graphic layer use command LAYER to turn Layer 3 ON to use Layer 3 Overlay OVERLAY overmode overmode Logical Mode 0 or 1 and 2 xor This command Overlay determines the logic mode between Layer 1 and Layer 2 Layer 1 is text and Layer 2 is graphics By using this command the user can decided what to do when Layer 1 and Layer 2 are displaying on the same position The default is XOR which will invert when Layer 1 and Layer 2 print to the same positions To no invert you can set this to OR
235. t Settings Click on Edit Settings Port Properties Port Stings advarced Baud Rate Data bis Party Sten bis Flow contro Please click on Advanced tab and you will see following screen There are TWO Advanced tabs If you followed the directions clearly you will be at the right Advanced tab like below 332 Port Properties EI Port Settings Advanced B 1 Serial setting A Baud Rate 115200 Data Bts 8 Flow Control None Party None stop ais 1 B JDP Datagram Mod Datagram Mode False E3 Passive Connection Accept Passive Connection Yes Auto Increment Source Port False Local Port 10001 Password Required False aiaia tonenn Active Connection None Connection Response None Modem Emulation Mode None 5 oscomneci n Disable Hard Disconnect False Disconnect With DTRDrop False E Cx Here Please change 4 Active Connection to Auto Start CET Auto Start z Connection Response None Modem Emulation Mode with Any Character Remote Host with Carriage Return Remote Port Manual Connection Telnet Mode Auto Start With Active DTR T Please change Remote Host to your PC s IP Address that we found earlier Mine is 192 168 0 66 And change Remote Port to 59000 since CuMAX Server accepts connections on UDP port 59000 Port Properties Port Settings Advanced Boud Rate Data Bits Flow Control Datagram Mode a
236. t Significant Bit First Before Rising Edge bitlength Length of bits 8 to 16 Shiftout SHIFTOUT clock data mode variable bitlength Clock Clock Port 0 255 Data Data Port 0 255 Mode O LSB First Least Significant Bit First 1 MSB First Most Significant Bit First 2 MSB First Most Significant Bit First Create ACK For I2C variable Variable to store data up to 65535 bitlength Bit Length 8 to 16 Style STYLE bold inverse underline bold OzNormal 2 or 3 Bold inverse O Normal 1 Inverse underline O0O Normal 1 Underline Sys Variable SYS address Variable Variable to store results No String or Single address Address 07255 426 Tadin Variable TADIN Channel Variable Variable to store results No String or Single Channel AD Channel Number Not pin number 0 15 Time Variable TIME address Variable Variable to store results No String or Single address Address of time value 0 to 6 Timeset TIMESET address value address Address of time value 0 to 6 value time value 0 255 Udelay UDELAY time time interval 1265535 Usepin USEPIN I O In Out AliasName T O I O Port Number 0 255 In Out In or Out AliasName Alias for the port Optional Utmax UTMAX variable Variable Variable for decrement No String or Single Waittx WAITTX channel channel RS232Channel
237. tes Header colon 1 Slave Address 0X03 03 2 Function Code 0X03 03 2 Byte Count 0X06 06 2 Data 1 LO 0X03 03 2 Data 1 HI OXE8 E8 2 Data 2 LO 0X01 01 2 Data 2 HI OXF4 F4 2 Data 3 LO 0X05 05 2 Data 3 HI 0X33 33 2 Length LO 0X03 03 2 Error Check LRC 2 Ending Code CR LF 2 258 Function Code 05 1 Bit Write PLC s can remotely control the status of its relays in units of bits through this function code The following is an example showing Slave Address 3 s P1 Relay being turned ON To turn ON relays FF 00 is sent and to turn OFF relays 00 00 is sent Query Field Header Slave Address Function Code Start Address HI Start Address LO Length HI Length LO Error Check Ending Code The response shows that the data was entered correctly Hex 0X03 0X05 0X01 0X00 OXFF 0X00 Bytes NNNNNNNNNRA You MUST use FF 00 and 00 00 to turn ON OFF relays other values will simply be ignored Response Field Header Slave Address Function Code Start Address HI Start Address LO Length HI Length LO Error Check Ending Code Hex 0X03 0X05 0X01 0X00 OXFF 0X00 Bytes NNNPFNPNPKNPKNPKNG 259 Function Code 06 1 Word Write PLC s can remotely control the status of its relays in units of Words through this function code The following is an example showing Slave Address 3 s D1 being written Que Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code 0X06 06 2
238. th x and y as the center Start and end are the values between 0 and 360 degrees ARC 200 60 100 10 20 Draw an arc from 10 to 20 degrees 228 Defchr DEFCHR code data Code Custom character code amp hdb30 amp hdbff Data 32byte bitmap data Create custom characters using this code A character of size 16 by 16 can be created and stored in the LCD memory Then the character can be used just like any other regular character using the command PRINT or GPRINT DPRINT Total of 207 custom characters can be stored in the memory At power off the characters are not preserved DEFCHR amp HDB30 amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA _ amp HAA amp HAA amp HAA amp H55 amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA amp HAA print CHR amp HDB30 227 Bmp BMP x y filenumber layer X y x y position to display BMP Filenumber BMP File number Layer Layer to display BMP GHB3224has FLASH memory to store BMP files Use the BMP Downloader to download BMP files Once BMP files are stored in the LCD you can simply use this command BMP to print to the LCD The GHB3224 has 102 400 bytes of Flash memory space to store BMP files You can store about 10 of 320x240 full screen size files This command is not available in CUTOUC
239. the counted value from the specified Count Channel Please set the Counter Input pins to input before use of this command Up to 32bits can be counted Byte Integer Long Maximum frequency is 500kHz CUBLOC s counter is hardware driven meaning it runs independently from the main program It is able to count in real time No matter how busy the CUBLOC processor gets counter will count reliably CUBLOC has 2 Counter inputs Counter Channel 0 uses same resources as PWMO 1 2 and cannot be used together But you are free to use Counter Channel 1 as freely as you d like To use Counter Channel 0 SET COUNTO command must be used beforehand Channel 1 requires no additional settings SOUT VIN SIN vss ATN RES vss VDD P15 COUNT 1 P14 COUNT 0 PO P1 P2 P13 P3 P12 P4 P11 P5 P10 P6 P9 P7 P8 Dim R As Integer Input 15 Set port 15 as input Counter Channel 1 R Count 1 Read current Counter value Activate Counter Channel 0 PWM0 1 2 becomes deactivated Input 14 Set port 14 as input Counter Channel 0 R Count 0 Read current Counter value Set Count0 On 116 Since counter O uses the same resources as Pwm as shown below please be careful Not to use PWM at the same time COUNTERO TIMERA x Mesure freqence from pulse output PWM 0 channel Const Device CB280 Dim A as Integer Input 15 Low 5 Fregout 0 2000 Low 0 On Timer 100 Gosub GetFreq
240. tion By encrypting automatically processed download data others can not LADDER and BASIC both IMPORTANT are compiled with one RUN button If error is found during compilation the screen will move to where the error occurs simply read part of the chip s memory to access the source code 53 Creating BASIC You can create BASIC code as shown below CUBLOC Text Editor is similar to most text editors and supports Coloring of certain commands CUBLOC studio d YsourceWcublocstudioWtestsourceWcaralram cul File Edit Device Run Setup Help BS d ix CA M m uH FI BASIC F2 LADDER Ladder Mnemonic Out SIREN SIREN TIMER BIT3 Out LED SIREN TIMER BIT3 Out FLIGHT SIREN TIMER BIT4 VALET Case 3 If F_KEY1 1 Then MODE 1 CHIRP TIMER 8 F_KEY1 D DOORCLOSE_TIMER 10 End If Incr LEDTIMER Out LED LEDTIMER BIT4 End Select Sub TIMER_CONTROL Dtzero CHIRP_TIMER Dtzero DOOROPEN_TIMER Dtzero DOORCLOSE_TIMER Dtzero LIGHT_TIMER Dtzero DELAY TIMER Sub OUTPUT PROC If LIGHT TIMER gt 0 Then Out FLIGHT LIGHT TIMER BIT3 End If If CHIRP TIMER gt 0 Then Aut STDOMOCUTDN MTMUD DTMI Modified Program 9602 Bytes Data 101 Short Cut Explanation CTRL Z UNDO CTRL O OPEN CTRL S SAVE CTRL C COPY CTRL X CUT CTRL V PASTE CTRL F FIND CTRL HOME Go to the very beginning CTRL END Go to the very end CTRL Y REDO 54 Debugging amp CUBLOC studio d Y sourceWcublocstu
241. to 5V of the main module Power GND SCL SDA MAIN GND SCL SDA CuNET Module CuNET device s connector s pin 2 connects to RESET of the main module when power is supplied to the CUNET device causes CUBLOC to reset Power GND SDA Active LOW to RESET Power GND RESET SDA MAIN CuNET lines can be used within 3 feet CuNET Module For longer communications up to about 1mile you can use Phillips I2C Long distance interface chip P82B96 or P82B715 245 CUBLOC STUDY BOARD Circuit Diagram Study board is especially for first timers and developers of CUBLOC Simple experiments including switches LED RS232 communication 12C piezo ADC toggle switches and LCDs are included Communication protocol CUNET 12C and LCD connections are also provided 1 RS232 CH1 O Contact 2 CB280 TX RX Contact Download Port Reset Switch Contact LED S Ws 3 ALCD Connector 1 0 Ports Contact 3 E E CuNET _ 4 CuNET Jumper I Bread Board a ta VN 00000000 e O Bee E DC 9V INPUT RS232 CHANNEL 1 POWER S W When 9V is inputted the 5V regula
242. to receive another interrupt Usepin 0 In Set Ladder On Set Display 0 0 16 77 50 On Ladderint Gosub msgl_rtn Dim i As Integer Low 1 Do i itl Byteout 1 i Delay 200 Loop msgl_rtn Locate 0 0 Print ON Ladderint Dec i Reverse 1 Return Hh SETOUT F40 F C 1 When PO turns ON it will turn on F40 and when relay F40 turns ON msgi_rtn interrupt routine in BASIC will be executed In the interrupt routine a string is printed to the LCD 154 Although there is only one relay F40 to create an interrupt in BASIC from LADDER we can use data Relay D to process many different types of interrupts PO WMOV 3 D0 7 Lom SETOUT F40 1 P2 WMOV 2 D0 H 3 SETOUT F40 1 When PO turns ON DO gets 3 and interrupt routine is executed If P2 turns ON DO gets 2 and interrupt routine is executed In the interrupt routine the user can then process the type of interrupt based on the value stored in DO ms Gea If _D 0 3 Then Locate 0 0 Print ON Ladderint Dec i End If If _D 0 2 Then Locate 0 0 Print TEST PROGRAM Dec i End If Return For short version of above LADDER commands the user can use INTON command which accomplishes both WMOV and SETOUT in one command The following is the equivalent shortened version of the above ladder PO INTON 3 00 F c 1 PI INTON 2 00 E C 1 155 On Pad Gosub ON PAD GOSUB label You can set the packet size using SET PAD command The ON PAD interrupt will
243. to transform your program before compilation It is called a macro processor because it allows you to define macros which are brief abbreviations for longer constructs In CUBLOC BASIC a Preprocessor similar to C language can be used Preprocessor directives like include and define can be used to include files and process code before compiling include filename Include file in the source code For files in the same directory as the source file you can do the following INCLUDE MYLIB cub For files in other directories you will need to include the full path name like shown here INCLUDE c mysource CUBLOC lib mylib cub By using include files you can store all of your sub routines in a separate file Please make sure to use pre processor directive include at the very end of your program After End for subroutines define name constants By using define you can define constants before compiling define motorport 4 low motorport For the example above motorport will be compiled as 4 You can also just use CONST for such examples like this CONST motorport 4 low motorport The following example uses define for replacing a line of command 84 define FLAGREG1 2 define f led FLAGREG1 BITO define calc 4 i 256 f led 1 Set FLAGREGl s bit zero to 1 IF f led 1 then f led 0 Make it easier to read j calc Calculations can be simplified define will not differentiate upperc
244. to use menus These commands make for easy creation and manipulation of the menus With the menu system library a menu system shown in the below picture can be made in less than 5 minutes Comfile Automobile gas pressurizer Select gas d Auto type Gas left Initialize Total cost MENU Commands CUTOUCH has memory space for about 100 MENU buttons Use MENUSET command to set the x and y axis positions and the style of the MENU Then MENUTITLE command can be used to name the MENU When touch input is received MENUCHECK command can be used to decide which MENU button was pressed 0 99 Each MENU button can be reset to another x and y axis positions and style by using MENUSET command The only restriction is that up to 100 button can be inputted at time in one screen But the user is free to reset each button to another usage after each screen allowing infinite buttons 276 Menuset MENUSET index style x1 y1 x2 y2 Index Menu Index Number Style Button Style O none 1 Box 2 Box with Shadow X1 y1 x2 y2 Menu Button location Index value must be between 0 99 Style is the shape of the button where 0 is no box 1 is for a box and 2 is for a showed box _ 0 1 2 x1 y1 x2 y2 are the x and y axis positions of the left upper and lower right corners When this command is executed the set
245. tor inside the Study Board will automatically provide 5V to the module and peripherals DC Adaptor polarity can be used either way For normal operation please use a 9V adaptor with at least 200mA of current 246 Cubloc Study board 1 Schematic 5V VDD e ZZA GND VSS zp 0 ack 2345 a Duas H m LE nux DOWNLOAD piezo LED AID TOGGLE PUSHSW T ALCD VO PORTS POT 01234567 89101 12131415 1617 619202222 CUNET EU TOGGLE I 1 RS232 Channel 1 Connection point to use the RS232 Channel 1 please connect wires to the appropriate pin input on the upper right hand corner labeled RS232C 2 For CB280 connect RS232 Channel 1 as shown below Tx rx RX JRX 3 For using CuNET all jumpers must be shorted If using pin 8 and 9 directly please leave all jumpers to open state 247 About 12 CUBLOC provides easy set of commands to communicate using 12C protocol I2C communication is a widely used protocol mainly used for communicating with ADC EEPROM DAC External I O chips I2C uses two lines SDA and SCL and operates in either MASTER or SLAVE mode CUBLOC can only be used as a MASTER Please make sure to use command SET I2C before using I2C comman
246. trl C or press on the To Clipboard button at the bottom Real Time Code Generation x BASIC Code for CUBLOC SUB NUMKEYO FONT 0 0 STYLE 0 0 0 MENUSET 0 2 190 85 215 90 MENUTITLE 0 9 4 1 MENUSET 1 2 225 85 250 90 MENUTITLE 1 9 4 2 MENUSET 2 2 260 65 285 90 MENUTITLE 2 9 4 3 MENUSET 3 2 190 100 215 125 MENUTITLE 3 9 4 4 MENUSET 4 2 225 100 250 125 MENUTITLE 4 9 4 5 MENUSET 5 2 260 100 285 125 MENUTITLE 5 9 4 6 MENUSET 6 2 190 135 215 160 MENUTITLE 6 9 4 7 MENUSET 7 2 225 135 250 160 MENUTITLE 7 9 4 8 MENUSET 8 2 260 135 285 160 MENUTITLE 8 9 4 9 MENUSET 9 2 190 170 215 195 MENUTITLE 9 9 4 0 MENUSET 10 2 225 170 285 195 MENUTITLE 10 12 4 ENTER FONT 4 0 To Clipboard Save to File You can also use include files instead of copying and pasting for repetitive menu creations 295 Click Save to File button and save as an include inc file Save Your Design To BASIC Code Axl Ax E APPNOTE x 66 E sj CTO05 INC idem ABS Te BND CUBLOC BASIC Code inc y ala 8 A Using the include file you will be able to save lots of time and be able to make changes to your menus without making it a big copy and paste hassle The following program is exactly same as SAMPLE4 except we use include file for the virtual keypad lt Filename CT005 CUL gt Const Device Ct1700 Dim TX1 As Integer TY1 As Integer Dim I As Integer Contrast 530 Set Pad 0 4 5 On Pad Gosub GETT
247. ttery You also have the option of using larger capacity capacitor or an actual battery 286 KEEP Timer and KEEP Counter KEEP timer will retain its data values when powered off and restart from the data values when power is turned on KCTU and KCTD commands can be used in place of CTU and CTD commands in order to make use of this KEEP timer and KEEP counter Please refer to KCTU KCTD commands for detailed information 287 CUTOUCH Sample Program SAMPLE 1 Let s make a simple counter that will print to the screen The source files used here are in your CUBLOC Studio installation directory Usually C Program Files Comfile Tools CublocStudio 3241 Filename CTOO1 CUL gt Const Device Ct1700 Dim I As Integer Contrast 550 LCD CONTRAST SETTING Do Locate 15 6 Print DECS T TASE Delay 200 Loop Please adjust your screen s contrast accordingly using CONTRAST command Depending on the model you may be able to adjust the contrast using a adjustable knob on the back of CUTOUCH In this case you have the option to set the contrast manually 288 SAMPLE 2 The following example program will display RESET button and will increment number shown every time the button is pressed 3241 RESET Filename CT002 CUL gt Const Device Ct1700 Dim I As Integer Dim TX1 As Integer TYl As Integer Contrast 550 Set Pad 0 4 5 On Pad Gosub GETTOUCH Menuset 0 2 120 155 195 200 Menutitle 0 20 14 RESET Do Loc
248. uires no special characters to start and finish blank space to indicate start and finish It uses 4 bytes of START SLAVE ADR FUNCTION DATA CRC END T1 T2 T3 1 Byte 1 Byte N Bytes 1 Byte T1 T2 T3 T4 T4 CUBLOC supports MODBUS command amp Address CUBLOC supports MODBUS commands 1 2 3 4 5 6 15 and 16 Command Command Name 01 02 Bit Read 03 04 Word Write 05 1 Bit Write 06 1 Word Write 15 Multiple Bit Write 16 Multiple Word Write In MODBUS there are addresses which stand for relays in CUBLOC CUBLOC s relays P M F C T and D can be accessed using the following table Bit Units Word Units Address Relay Address Relay 0000H P 1000H M 2000H Not Used 3000H Not Used 4000H F 5000H Al 6000H 7000H D 8000H WP 9000H WM 0A000H WF 255 Function Code 01 02 Bit Read This function code can read the bit status of PLC s relay The following is an example of reading relays P20 through P56 from Slave Address of 3 Que Field Hex ASCII Bytes Header colon 1 Slave Address 0X03 03 2 Function Code 0X01 01 2 Start Address HI 0X00 00 2 Start Address LO 0x14 14 2 Length HI 0X00 00 2 Length LO 0X25 25 2 Error Check LRC 2 Ending Code CR LF 2 LRC is the 2 s complement of 8 bit sum of all values except Colon CR and LF For the table above 0x03 0x01 0x13 0x25 Ox3C To
249. uple times and you will see that it creates a line dr ddr d ns T JTC J L e F3 ES Eb F8 F9 Fl Fi2 NOT END START 1 2 4 Press F7 and type RELAY lel ee gt ll 2 55 alice E de 2 2 25 F3 F4 F5 F6 F F8 A A or END Insert T Undo START 5 Go to the next rung line and press END AF VF 1 3 e T L Z jt lt 3 5 2 F8 F4 Fs Fe F Fe F9 Fil F12 NOT END Insert Delete Undo START RELAY 1HI C E a Please press the ENTER key at the end of entering TEXT At the very end of the LADDER LOGIC you must put an END command 343 Editing LADDER Text Editing Text To edit an existing TEXT please place the cursor in the desired location and press ENTER Now you can edit the TEXT freely as you like START TON T1 100 1 r 1 Erasing a Cell START 1 1 ES Enter SPACE key START 1 1 Erasing a Rung one line START RELAY Ti O END A rung is a row in Ladder You can press CTRL D to erase a rung This actually moves the rung to a buffer START RELAY 1 HI 2 END 2 t 1 344 Rung Recovery To recover an erased rung press CTRL U START RELAY 1 HH Ine C OuT2 2 Hl END 3 t 1 Cell Insert and Delete START TON T0 100 1 SS E 1 If you press DEL button from current position the cell is erased and items on the right are pulled one cell to the left Hr TON
250. used NUMKEY Y ASAS CuCANVAS File Edit Generate Tools View Help Dek ci e d Numkey Add Form Use tab key to select neighbor ones 1 Humkey a O e N A a a 116 25 On the left side of CUCANVAS you will see a tool bar with an arrow box filled box circle filled circle line text and menu box Please select the last button menu box and draw a small box on the screen The O on the button means the menu number is O In the actual screen this number will not be displayed Type 1 in the Title field on the top You have successfully made a 1 button 293 Y Numkey cvs CuCANVAS 0R File Edit Generate Tools View Help Dg GM a Numkey Use tab key to select neighbor ones 4 o a O e A a a You can make the rest of the buttons and the keypad like the one shown below can be made in less than 5 minutes Y Numkey cvs CuCANVAS File Edit Generate Tools View Help JD o Ci m eu Numkey Use tab key to select neighbor ones 1 Humkey 11625 ess x v sef x 294 Now is the fun part Simply click on Generate on the menu bar and click View Basic Code CuCANVAS will generate a sub function that includes the button that you have just created Simply copy Ctrl C and paste CTRL V to CUBLOC Studio and wala You have a menu in couple minutes For copying you can either press C
251. vailable it will cause Overflow By using this function you can avoid Overflow CB280 has maximum of 1948 bytes of Data Memory Please make sure to have at least 100 bytes of free Data Memory for safety A Sys 6 Store the current Data Memory Address in A 194 Tadin Variable TADIN Channel Variable Variable to store results No String or Single Channel AD Channel Number Not pin number 0 15 This command Tadin is similar to Adin It returns the average of 10 ADIN converted value When working under noisy environments using Tadin could help in obtaining more precise results Tadin is pre made system s functions program function tadin num as byte as integer dim ii as integer ta as long ta 0 HO A TO 8 ta ta Adin num Next TADIN TA 10 End Function 195 Time Variable TIME address Variable Variable to store results No String or Single address Address of time value 0 to 6 CUBLOC module CB290 has an RTC chip internally You can use Time and Timeset commands to set and return time values to and from the RTC Time information such as current time day of the week and year can be set to the RTC and read from it in real time Time is kept alive even when module powers off through use of its backup battery The following is a chart showing the addresses of the RTC and its corresponding values You cannot use these commands for CB220 and CB280 since they do not have an RT
252. value DIM ST1 AS STRING 12 ST1 STRING amp H41 5 DEBUG ST1 AAAAA is printed amp H41 is ASCII code for character A SPC decimal places Create specified amount of blank space DIM ST1 AS STRING 12 ST1 SPC 5 DEBUG A ST1 A AbbbbbA is printed Here b is for blank space LTRIM String variable Cut all blank spaces on the left side of the String and return the value DIM ST1 AS STRING 12 ST COMFILE ST1 LTRIM ST1 DEBUG AAA ST1 AAACOMFILE is printed RTRIM String variable Cut all blank spaces on the right side of the String and return the value DIM ST1 AS STRING 12 ST1 COMFILE ST1 RTRIM ST1 DEBUG ST1 TECH COMFILETECH is printed Blank spaces on the right are removed 100 VAL String variable Return a converted numerical value of the String DIM ST1 AS STRING 12 DIM 1 AS INTEGER sT1 123 I VAL ST1 123 is stored in variable I as a number VALSNG String variable Return a converted floating point numerical value of the String DIM ST1 AS STRING 12 DIM F AS SINGLE ST1 3 14 F VALSNG ST1 3 14 is stored in variable F as a floating point number CHR ASCII code Return the character of desired ASCII code DIM ST1 AS STRING 12 ST1 CHR amp H41 DEBUG ST1 Print A amp H41 is ASCII code of character A ASC String variable or Constant Return the converted ASCII code of the first character o
253. y overwrite the background When trying to display animations or numbers that change rapidly such as moving ball or current time Dprint will allow smooth transitions Dprint can only be used with X Axis that is multiple of 8 For example you can use Glocate 8 2 or Glocate 16 101 224 Offset OFFSET xy You can set offset for the printed strings on the graphic layer The default value is 0 You can control either the x or the y axis offsets CUBLOC IS FUN COMFILE TECHNOLOGY 239 OFFSET 3 3 Set x and y offset to 3 0 319 CUBLOC IS FUN COMFILE TECHNOLOGY 239 After the command the strings will automatically adjust to the new offsets 225 Pset PSET x y Place a dot on x y PSET 200 100 Place a dot Color COLOR value Set the color of LCD 1 is black and 0 is white Default value is O COLOR 0 Set color to 0 Linestyle LINESTYLE value Set line style using this command You can make dotted lines by increasing the value The default value is 0 a straight line LINESTYLE 1 Use dotted lines Dotsize DOTSIZE value style Set the dot size Value is the size of the dot and style can either be O for rectangular or 1 for circular dot DOTSIZE 1 1 Set dot size to 1 and dot type to circle 226 Paint PAINT x y Fill the enclosed area within position x y PAINT 100 100 Fill the enclosed area within 100 100 Arc ARC x y r start end Draw an arc wi
254. y 100 324 Loop The MCP3202 will convert voltage coming into CHO and CH1 ports to a data value and retain it The user can simply use SPI communication to read the value that the MCP3202 has converted The voltage inputted to the MCP320 CHO and CH1 pins must not be greater than the voltage supplied to the MCP3202 The result of A D conversion is displayed to the DEBUG window Ka A Terminal 5 x BoudRate Parity DelaBis em v q ET y 115200 z hore e y RX Close I Fix Right Side lt END gt 325 NOTE 11 Read and write to the EEPROM With the EEPROM you can store between 0 5 to 64 KB of data Data is retained even after powering off allowing it to act almost as a small hard drive If you want to retain a temperature setting for a temperature controller you can simply store the value of the temperature in the EEPROM in case of power outs CUBLOC has an internal EEPROM of 4KB For small and simple data you may use this internal EEPROM In the case of larger data you can use an EEPROM like 24LC512 to store up to 64KB of data Here we will show you how to access the 24LC32 4KB EEPROM through I2C protocol The serial EEPROMs usually support either SPI or I2C 12C EEPROMs name starts with 24XXXX and SPI EEPROMs name starts with 93XXX 24LC32 4 7Kohm Filename eeprom cul gt Const Device CB280 Dim adr As Integer Dim data As Byte Dim a As Byte data amp ha6 adr amp h3 eH cS Do I2
Download Pdf Manuals
Related Search
Related Contents
piano di sicurezza e coordinamento Guide stagiaire 2014 2015 - Centre universitaire Jean VACON NX Brake Resistors User Manual LM-XPO/LM-CPO/LM-MPO LM-CPA/LM-MPA Specifications, Installation, and Operating Instructions lithium-ionen-akku Teac CD-Rewritable W58E CD LD DAVE8XS Copyright © All rights reserved.
Failed to retrieve file