Bem, o problema é que você precisa determinar "como" esse treco todo iria funcionar...
Por exemplo, se a troca de velocidades se dará automaticamente através de um atuador (pneumático ou seja lá o que for) ou manualmente, pois isso determinará como a macro deve ser escrita...
Se haverá um atuador automático, você precisa comandá-lo através de uma saída (output#x) e verificar o estado do atuador através de uma entrada (input#y)
Se o atuador for manual, precisará monitorar a posição das alavancas através de entradas e dependendo do estado destas, avisar o operador de alguma ação necessária caso esteja fora do que se espera, e não permitir que se prossiga até a correção do estado !
Como não sei o que você quer, fica difícil ajudar...
Pontualmente, abaixo algumas respostas para suas perguntas (mas como não há contexto, fica tudo meio vago)
para escrever uma macro, qual informação posso dar para que o mach3 entenda o endereço das spindle puleys?
SetPulley(1) "o numero se refere à polia 1, 2, 3 assim por diante
no meu caso vou ter apenas 1 alavanca com 3 posições.
para cada posição vou colocar um sensor.
para 1 posição vou escrever a macro EX: M37
Dica: toda e qualquer macro de USUÁRIO deve começar com um numero maior que 100 (ex. 101, 334, etc)
Comando de verificação de um sinal: (exemplo qualquer)
While IsActive (OEMTRIG2)=False "verificar se de fato a entrada 2 está ativa
Sleep 100 "atenção ao tempo - no exemplo está em milissegundos
Wend
If IsActive (OEMTRIG2) then
Message "Velocidade Baixa Selecionada"
como posso escrever na macro para aguardar sinal da input(1)?
Respondido acima
e como posso escrever que o sinal da input(1) vai ser direcionado para spindle puley (1)?
Como respondido acima ("SetPulley(N)"), mas aí mora uma encrenca:
Me parece que o Mach3 verifica em dois lugares o que ele deve fazer quando se comanda um spindle: na Macro "M3.m1s" que diz ao sistema se deve ligar o spindle e na macro "SpindleSpeed.m1s", que diz ao sistema em que rotação deverá acionar aquele spindle...
Pois bem, quando há uma chamada (dentro do programa de corte) de M3 S100 por exemplo, o Mach3 sabe que deve ligar o spindle e este deve girar a 100 rpms...
Provavelmente terá que alterar a macro "SpindleSpeed.m1s" para que ela faça o controle das alavancas e limite a velocidade, e quase o mesmo dentro da macro M3, mas atenção: NUNCA faça uma chama de uma macro dentro de outra macro, e é aí onde mora o perigo...
e assim para as demais spindle puleys?
Meio que respondido acima, mas vamos lá - um exemplo de controle:
If Spin < 1001 Then "para seleção de faixa de velocidade baixa
SetPulley(1)
Call LowGear
End If
If Spin > 1000 Then
SetPulley(2)
Call HighGear
End If
Mas veja - isso tudo é conjectura, porque como já disse, não tendo o conceito todo montado, nada disso é aproveitável (os códigos acima são incompletos é claro
... Falta o resto do controle e que provavelmente poderia ser colocado dentro da macro M3...