• 06-12-2018, 14:38:07
    #1
    Dim io_sts As Integer
            Dim AxisNo As Integer
    B_8154_get_io_status(3, io_sts)
            TextBox1.Text = Hex(io_sts)

    3 yazan yer sensör numaralarımız. 0, 1, 2, 3 bu şekilde tek tek değişip deneyince 0 yazdıysak 0 baglı sensör calısıyor.

    Fakat ben bunu bir if döngüsü içine alıp, hangisine basarsam calıssın istiyorum ama olmuyor bir türlü

    Dim io_sts As Integer
            Dim AxisNo As Integer
            Dim ia As Integer
            For ia = 0 To 3
                AxisNo = ia
                B_8154_get_io_status(AxisNo, io_sts)
                TextBox1.Text = Hex(io_sts)
                If Hex(io_sts) = 4011 Then
                    B_8154_emg_stop(CInt(ia))
                End If
            Next ia
    Sizce nerede hata yapıyorum?
  • 06-12-2018, 18:16:46
    #2
    BoogeymaN adlı üyeden alıntı: mesajı görüntüle
    Dim io_sts As Integer
            Dim AxisNo As Integer
    B_8154_get_io_status(3, io_sts)
            TextBox1.Text = Hex(io_sts)
    3 yazan yer sensör numaralarımız. 0, 1, 2, 3 bu şekilde tek tek değişip deneyince 0 yazdıysak 0 baglı sensör calısıyor.

    Fakat ben bunu bir if döngüsü içine alıp, hangisine basarsam calıssın istiyorum ama olmuyor bir türlü

    Dim io_sts As Integer
            Dim AxisNo As Integer
            Dim ia As Integer
            For ia = 0 To 3
                AxisNo = ia
                B_8154_get_io_status(AxisNo, io_sts)
                TextBox1.Text = Hex(io_sts)
                If Hex(io_sts) = 4011 Then
                    B_8154_emg_stop(CInt(ia))
                End If
            Next ia
    Sizce nerede hata yapıyorum?
    istediğiniz sonucu bulduğunuzda break komutu ile döngüyü kırmanız gerekir yoksa çalışanı bulduktan sonra diğerlerinide dener ve en son denediğinin sonucunu yazdırır.

    normalde visual basic pek hakim değilim fakat şöyle birşey deneyebilirsiniz ;

    If Hex(io_sts) = 4011 Ten
    B_8154_emg_stop(CInt(ia))
    Exit For
    End If