Hi Henrik
Thank you for help re:- my coding... Us HW people suffer with S/W issues... Cant see what is happening if cant prod it with Fluke
Anyway got it working today... See below :-
Anything you see wrong in my attempt above do tell ..... Is there a correct order to list the defines / setup etc ?Code:'**************************************************************** '* Name : TRIP.BAS * '* PIC : PIC16F688 * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2015 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 29/10/2015 * '* Version : 1.0 * '* Notes : 322 Words used * '* : * '* * '* Process Signal AN0 * '* Alarm Preset AN1 * '* Trip Preset AN2 * '* Delay Trip Dly RC2 * '* Alarm Relay RC3 * '* Trip Relay RC4 * '* Reset Trip P/B RC5 * '**************************************************************** DEFINE OSC 8 ' Set RC Clock to 8 Megs CMCON0 = 7 'Disable both comparators 'Define ADCIN parameters Define ADC_BITS 10 ' Set number of bits in result Define ADC_CLOCK 3 ' Set clock source (3=rc) Define ADC_SAMPLEUS 50 ' Set sampling time in uS ANSEL = %00000111 ' Enable ADC channels AN2-AN0 ADCON1 = %10000000 ' Set PORTA analog and right justify result 'Analogs PROC_SIG Var word ' Create PROC_SIG to store result ALARM_TRIM Var word ' Create ALARM_TRIM to store result TRIP_TRIM Var word ' Create TRIP_TRIM to store result 'Digitals ALARM_RLY VAR PORTC.3 ' Alarm Relay TRIP_RLY VAR PORTC.4 ' Trip Relay TRIP_RST VAR PORTC.5 ' Trip Reset PB TRIP_DLY VAR PORTC.2 ' Trip Delay Link 'Constants RLY_OFF CON 0 ' Relay Off RLY_ON CON 1 ' Relay On HYS CON 25 ' 25 = 1/8Volt START: LOW TRIP_RLY ' Ensures Trip Rly off LOW ALARM_RLY ' Ensures Alarm Rly off Gosub ANALOG_READ If (ALARM_RLY = RLY_OFF) AND (PROC_SIG >= (ALARM_TRIM + HYS)) THEN ALARM_RLY = RLY_ON If (ALARM_RLY = RLY_ON) AND (PROC_SIG <= (ALARM_TRIM - HYS)) THEN ALARM_RLY = RLY_OFF If (TRIP_RLY = RLY_OFF) AND (PROC_SIG >= (TRIP_TRIM + HYS)) and TRIP_DLY = 0 THEN goto D_TRIP If (TRIP_RLY = RLY_OFF) AND (PROC_SIG >= (TRIP_TRIM + HYS)) AND TRIP_DLY = 1 THEN goto L_TRIP GOTO START L_TRIP: ' Latching Trip high TRIP_RLY ' Latch Trip Relay IF TRIP_RST = 0 THEN GOTO START 'Release If PB Reset Pressed Goto L_trip D_TRIP: ' Delayed Trip HIGH TRIP_RLY ' Latch Trip Relay PAUSE 1000 ' Pause for T_Delay GOTO START ANALOG_READ: ' Read analogs ADCIN 0, PROC_SIG ' Read channel 0 to PROC_SIG ADCIN 1, ALARM_TRIM ' Read channel 1 to ALARM_TRIM ADCIN 2, TRIP_TRIM ' Read channel 2 to TRIP_TRIM RETURN END
Thank you again for your help
BR
Andy





Bookmarks