请教关于开关量高低电平的编程问题

时间:2022-04-22 10:17:59
SetSwitchValue

向指定TCP连接对端的C2000的指定开关量端口输出高电平或低点平。 

BOOL SetSwitchValue(

    long ConnectID, 

    long PortNum, 

    long Value

);

 

参数:

ConnectID

  [in] 它唯一的标识一个与C2000的TCP连接,合理取值范围为 1—65535。ConnectID由控件分配,并在OnAccept事件中通知用户程序。   

PortNum

    [in] C2000开关量端口的编号,取值范围:1—128。

Value

    [in] 要求在指定的C2000开关量端口上输出的电平,0—低电平,1——高电平。 

 

返回值:

    成功返回非零,失败返回零。使用透明Socket通信时,本函数总返回零。




GetSwitchValue

获得指定TCP连接对端C2000上开关量端口的输入输出电平。 

long GetSwitchValue(

    long ConnectID,

    long PortNum

); 

 

参数:

ConnectID

  [in] 它唯一的标识一个与C2000的TCP连接,合理取值范围为 1—65535。ConnectID由控件分配,并在OnAccept事件中通知用户程序。   

PortNum

    [in] 端口编号,取值范围:1—128。 

 

返回值:

    指定TCP连接对端C2000上开关量端口的当前电平,0—低电平;1—高电平;3—端口未定义。使用透明Socket通信时,本函数总返回3。





GetSwitchDirection

获得指定TCP连接对端C2000上开关量端口的方向。 

long GetSwitchDirection(

    long ConnectID,

    long PortNum

);

 

参数:

ConnectID

  [in] 它唯一的标识一个与C2000的TCP连接,合理取值范围为 1—65535。ConnectID由控件分配,并在OnAccept事件中通知用户程序。   

PortNum

    [in] 端口编号,取值范围:1—128。 

 

返回值:

    指定TCP连接对端C2000上开关量端口的方向,0—输出;1—输入;3—端口未定义。使用透明Socket通信时,本函数总返回3。


以上的函数来实现总共有16个开关量输入端口的显示问题.就是现在有16个灯(用picturebox控件数组实现的).就是每个开关量的输入端口电平的变化可以用灯亮还是灯灭来观察.怎么实现?我不知道电平是怎回事?


1 个解决方案

#1



Private Sub EDSock_SwitchChange(ByVal ConnectID As Long, ByVal PortNum As Long, ByVal Value As Long)
    
    For PortNum = 1 To 16 '特定端口显示状态
        
        If Value = 1 Then '输入端口短路
        
        
        ' 加载 红灯 显示状态
            picinput(PortNum - 1).Picture = LoadPicture("C:\David 's bag\Item\R.bmp")
        Else
             '断路状态
            picinput(PortNum - 1).Picture = LoadPicture("C:\David 's bag\Item\Z.bmp")
      
        End If
    Next PortNum
End Sub

哈哈,刚弄出来了!

#1



Private Sub EDSock_SwitchChange(ByVal ConnectID As Long, ByVal PortNum As Long, ByVal Value As Long)
    
    For PortNum = 1 To 16 '特定端口显示状态
        
        If Value = 1 Then '输入端口短路
        
        
        ' 加载 红灯 显示状态
            picinput(PortNum - 1).Picture = LoadPicture("C:\David 's bag\Item\R.bmp")
        Else
             '断路状态
            picinput(PortNum - 1).Picture = LoadPicture("C:\David 's bag\Item\Z.bmp")
      
        End If
    Next PortNum
End Sub

哈哈,刚弄出来了!