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.   


    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哈哈,刚弄出来了!