Changeset 2323 for trunk/MagicSoft/Cosy


Ignore:
Timestamp:
09/03/03 11:39:28 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Cosy
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Cosy/Changelog

    r2280 r2323  
    11                                                                  -*-*- END -*-*-
     2 2003/09/03 - Thomas Bretz
     3 
     4   * aposs/Magic.m:
     5     - updated to V0.69
     6
     7
     8
    29 2003/07/16 - Thomas Bretz (La Palma)
    310
  • trunk/MagicSoft/Cosy/aposs/Magic.m

    r2067 r2323  
    1010/*                                                                         */
    1111kVERSION    = 0   /*                                                       */
    12 kSUBVERSION = 68  /*                                                       */
     12kSUBVERSION = 69  /*                                                       */
    1313/*                                                                         */
    1414/*  HISTORY:                                                               */
     15/*                                                                         */
     16/*   * V0.69:                                                              */
     17/*       - Implemented Pre-Operational/Operational state                   */
     18/*          means: + cannot start RPM mode                                 */
     19/*                 + SDO 0x6004 (POSA/POSR) ignored                        */
     20/*                 + new SDO 0x1000                                        */
    1521/*                                                                         */
    1622/*   * V0.68:                                                              */
     
    95101/*  Object Dictionary:                                                     */
    96102/*                                                                         */
     103/*   0x1000 1 rw Start node (Pre-oprational --> operational)               */
    97104/*   0x1003 x rw Read delete error list (subidx 0-9)                       */
    98105/*   0x1004 0 ro Nr of PDOs (transmit)                                     */
     
    115122/*   0x2003 0 wo Acceleration                                              */
    116123/*          1 wo Deceleration                                              */
    117 /*   0x3000 x wo Motor 'on', 'off', 'stop'                                 */
     124/*   0x3000 x wo Motor 'on', 'off', 'stop' (Warning: Motor off can have    */
     125/*                                          strange side effects if RF=1!) */
    118126/*   0x3001 x wo Home 'home'                                               */
    119127/*   0x3002 x wo Reopen Communication 'open'                               */
     
    254262firsttimeout   = 0
    255263
     264preop = kTRUE
     265
    256266/*-------------------------------------------------------------------------*/
    257267/* Can Open Definitions                                                    */
     
    351361            gosub reset
    352362            goto mainloop
    353          elseif mode==1 then
     363         elseif (mode==1) then
    354364            print "Control not in PC mode!"
    355365            gosub reset
    356366            SET PRGPAR 0
    357367            exit
    358          elseif fuse==0 then
     368         elseif (fuse==0) then
    359369            print "Motor-Power Fuse not OK!"
    360370            gosub reset
    361371            goto mainloop
    362          elseif vltg==0 then
     372         elseif (vltg==0) then
    363373            print "Overvoltage control broken!"
    364374            gosub reset
    365375            goto mainloop
    366          elseif emcy==0 then
     376         elseif (emcy==0) then
    367377            print "Please release Emergency Stop!"
    368378            gosub reset
     
    389399               brake = 1
    390400               waitt 1000
    391             endif         
    392            
     401            endif
     402
     403            /* This "motor on" is necessary to make sure the floating analog output
     404               doesn't move the telescope (slowly) */
    393405            motor on
    394406
     
    449461      subidx = canhi&0xff
    450462      sdoval = (canlo&0xff)<<24 | (canlo&0xff00)<<8 | (canlo>>8)&0xff00 | (canlo>>24)&0xff
     463      canlo  = 0
    451464/*
    452465      PRINT "Setting Idx:", idx, "/", subidx, " to ", sdoval
    453466*/
    454       if (idx==0x1003 and subidx==0 and sdoval==0) then
     467      if (idx==0x1000 and subidx==1 and sdoval==1) then
     468         preop = kFALSE
     469      elseif (idx==0x1003 and subidx==0 and sdoval==0) then
    455470         i = 9
    456471         while (i) do
     
    530545         CANOUT sdotx (canhi&0xffffff | 0x60000000) 0
    531546         EXIT
    532       elseif (idx == 0x3006) then
     547      elseif (idx == 0x3006) then 
    533548         if (subidx == 0) then
    534549            if (sdoval == ('s'<<24|'t'<<16|'r'<<8|'t')) then
    535                CVEL 0
    536                CSTART
    537              elseif (sdoval == ('s'<<24|'t'<<16|'o'<<8|'p')) then
     550               if (preop==kFALSE) then
     551                  CVEL 0
     552                  CSTART
     553               else
     554                  canlo = 1
     555               endif
     556            elseif (sdoval == ('s'<<24|'t'<<16|'o'<<8|'p')) then
    538557               CSTOP
    539              endif
     558            endif
    540559         elseif (subidx == 1) then
    541560            CVEL sdoval
    542          endif
     561         endif 
    543562      elseif (idx == 0x3007) then
    544          if (subidx==0 and sdoval == ('s'<<24|'y'<<16|'n'<<8|'c')) then
    545             SYNCV
    546          elseif (subidx==1 and sdoval == ('s'<<24|'y'<<16|'n'<<8|'c')) then
    547             SYNCP
    548          endif   
     563         if (preop==kFALSE) then
     564            if (subidx==0 and sdoval == ('s'<<24|'y'<<16|'n'<<8|'c')) then
     565               SYNCV
     566            elseif (subidx==1 and sdoval == ('s'<<24|'y'<<16|'n'<<8|'c')) then
     567               SYNCP
     568            endif
     569         else
     570            canlo = 1
     571         endif     
    549572      elseif (idx == 0x3008) then
    550573         if (sdoval == ('o'<<24|'n'<<16)) then
     
    576599         endif
    577600      elseif (idx == 0x6004) then
    578         if (subidx==0) then
    579            POSA sdoval
    580         elseif (subidx==1) then
    581            POSR sdoval
     601        if (preop==kFALSE) then
     602           if (subidx==0) then
     603              POSA sdoval
     604           elseif (subidx==1) then
     605              POSR sdoval
     606           endif             
     607        else
     608           canlo = 1
    582609        endif
    583610      elseif (idx == 0x6200) then
     
    601628      endif
    602629
    603       CANOUT sdotx (canhi&0xffffff | 0x60000000) 0
     630      CANOUT sdotx (canhi&0xffffff | 0x60000000) canlo
    604631/*
    605632      PRINT "Sdo Set ", idx, "/", subidx
     
    615642/*
    616643      PRINT "Requesting Idx:", idx, "/", subidx
    617 */
    618       if (idx == 0x1003) then
     644*/         
     645      if (idx == 0x1000 and subidx==1) then
     646         sdoval = preop
     647      elseif (idx == 0x1003) then
    619648         if (subidx >=0 and subidx<=9) then
    620649            sdoval = errlist[subidx-1]
Note: See TracChangeset for help on using the changeset viewer.