Explorar el Código

add rm test script

Alexander Gladtsin hace 5 años
padre
commit
d75a81360c
Se han modificado 4 ficheros con 241 adiciones y 0 borrados
  1. 44 0
      HARD/RM_V3/rm_pinouts_signals
  2. BIN
      MANS.tgz
  3. 172 0
      TESTS/RM/rm.emu
  4. 25 0
      TESTS/RM/rm_cnt_test

+ 44 - 0
HARD/RM_V3/rm_pinouts_signals

@@ -0,0 +1,44 @@
+нагрузочный движок ШИМ
+нагрузочный энкодер
+измерительный движок ШИМ
+измерительный энкодер
+верхний концевик
+нижний концевик
+концевик головки
+SPI АЦП тензодатчика
+SPI измерительного АЦП
+UART
+
+Ошибки:
+00000001 зацепление головки 
+00000010 перегрузка измерительного двигателя
+00000100 перегрузка нагрузочного двигателя
+00001000 нагрузка более 100 кг
+00010000 обрыв проволоки
+00100000 ошибка нагрузочного АЦП
+01000000 ошибка измерительного АЦП
+
+обрыв связи
+
+строка вывода контроллера:
+нагр_поз    изм_поз    нагр_знач    изм_знач    нагр_скор    изм_скор    нагр_напр    изм_напр    верх_конц    нижн_конц    изм_конц    готов    ошибки
+int32       int32      int32        int32       uint8        uint8       |uint8                                                             |    uint8
+
+H00 - стоп
+H01 - уст. "0"
+H02 (расст меж концевиками)- калибровка, считает кол-во импульсов и делит на заданную длину.
+
+----нагрузочная----
+H11 - задать скорость
+H12 - задать позицию
+H13 - задать направление
+H14 - старт
+H15 - стоп
+--------
+----измерительная----
+H21 - задать скорость
+H22 - задать позицию
+H23 - задать направление
+H24 - старт
+H25 - стоп
+----

BIN
MANS.tgz


+ 172 - 0
TESTS/RM/rm.emu

@@ -0,0 +1,172 @@
+#!/bin/bash
+
+declare -i L_POS M_POS L_VAL M_VAL L_SPEED M_SPEED STAT ERRS
+declare -a COMMAND_NOW
+
+echo -n '' >/tmp/command
+
+L_POS=0
+L_TO_POS=0
+M_POS=0
+M_TO_POS=0
+L_VAL=0
+M_VAL=0
+L_SPEED=0
+M_SPEED=0
+M_START=0
+L_START=0
+M_POS_MAX=55
+M_POS_MIN=5
+
+STAT=0
+ERRS=0
+
+READY=1
+M_SW=2
+D_SW=4
+U_SW=8
+M_DIR=16
+L_DIR=32
+
+
+M_SW_N=0
+D_SW_N=0
+U_SW_N=0
+M_DIR_N=0
+L_DIR_N=0
+
+
+
+HEAD_E=1
+M_ENGINE_OL=2
+L_ENGINE_OL=4
+L_OVER=8
+DESTR=16
+M_ADC_ERR=32
+L_ADC_ERR=64
+
+while [ 1 ];
+do
+STAT=0
+COMMAND=`cat /tmp/command | grep -e ^H | head -n1`
+
+    if [ "$COMMAND" != "" ];
+    then
+	COMMAND_NOW=(`echo $COMMAND`)
+	echo -n '' >/tmp/command
+	
+	case ${COMMAND_NOW[0]} in
+	
+	"H00")
+		L_START=0
+		M_START=0
+	;;
+	
+	"H11")
+	    L_SPEED=${COMMAND_NOW[1]}
+	;;
+	"H12")
+	    L_TO_POS=${COMMAND_NOW[1]}
+	;;
+	"H13")
+	    if [ ${COMMAND_NOW[1]} != 0 ];
+	    then
+		L_DIR_N=$L_DIR
+	    else
+		L_DIR_N=0
+	    fi
+	;;
+	"H14")
+	    if [ ${COMMAND_NOW[1]} != 0 ];
+	    then
+		L_START=1
+	    else
+		L_START=0
+	    fi
+	;;
+	
+	"H21")
+	    M_SPEED=${COMMAND_NOW[1]}
+	;;
+	"H22")
+	    M_TO_POS=${COMMAND_NOW[1]}
+	;;
+	"H23")
+	    if [ ${COMMAND_NOW[1]} != 0 ];
+	    then
+		M_DIR_N=$M_DIR
+	    else
+		M_DIR_N=0
+	    fi
+	;;
+	"H24")
+	    if [ ${COMMAND_NOW[1]} != 0 ];
+	    then
+		M_START=1
+	    else
+		M_START=0
+	    fi
+	;;
+	
+	esac
+    fi
+
+    if [ $M_POS -gt $M_POS_MAX ];
+    then
+	U_SW_N=$U_SW
+    fi
+
+    if [ $M_POS -lt $M_POS_MIN ];
+    then
+	D_SW_N=$D_SW
+    fi
+
+
+
+    if [ $L_START != 0 ];
+    then
+	if [ $L_DIR_N -eq 0 ] && [ $L_TO_POS -lt $L_POS ];
+	then    
+	    let L_POS=$L_POS-1
+	elif [ $L_DIR_N -eq $L_DIR ] && [ $L_TO_POS -gt $L_POS ];
+	then
+	    let L_POS=$L_POS+1
+	else
+	    L_START=0    
+	fi
+    fi
+
+
+    if [ $M_START != 0 ];
+    then
+	if [ $M_DIR_N -eq 0 ] && [ $M_TO_POS -lt $M_POS ] && [ $D_SW_N -eq 0 ];
+	then 
+	    U_SW_N=0   
+	    let M_POS=$M_POS-1
+	elif [ $M_DIR_N -eq $M_DIR ] && [ $M_TO_POS -gt $M_POS ] && [ $U_SW_N -eq 0 ];
+	then
+	    D_SW_N=0
+	    let M_POS=$M_POS+1
+	else
+	    M_START=0    
+	fi
+	
+    fi
+
+
+#    if [ $M_START != 0 ];
+#    then
+	let STAT=$STAT+$L_DIR_N+$M_DIR_N+$U_SW_N+$D_SW_N+128+$READY+$M_SW_N
+	STAT_OUT=` echo "obase=2;$STAT"| bc`
+	ERRS_OUT=` echo "obase=2;$ERRS"| bc`
+	let L_VAL=$L_POS*7
+	let M_VAL=$M_POS*6
+	echo $L_POS  $M_POS  $L_VAL  $M_VAL  $L_SPEED $M_SPEED  $STAT_OUT  $ERRS_OUT
+#    fi
+    
+sleep 0.1
+
+done
+
+
+

+ 25 - 0
TESTS/RM/rm_cnt_test

@@ -0,0 +1,25 @@
+echo 'H11 5'>/tmp/command 
+sleep 1
+echo 'H12 200'>/tmp/command
+sleep 1
+echo 'H13 1'>/tmp/command
+sleep 1
+echo 'H14 1'>/tmp/command
+sleep 1
+echo 'H21 5'>/tmp/command 
+sleep 1
+echo 'H22 100'>/tmp/command
+sleep 1
+echo 'H23 1'>/tmp/command
+sleep 1
+echo 'H24 1'>/tmp/command
+
+sleep 3
+
+echo 'H21 5'>/tmp/command 
+sleep 1
+echo 'H22 0'>/tmp/command
+sleep 1
+echo 'H23 0'>/tmp/command
+sleep 1
+echo 'H24 1'>/tmp/command