0

我正在处理PLC设备和我的公司之间的连接PC。这PLC是已知的Siemens S7-200,我正在使用vb.NET. 可能我应该使用另一种语言,但这vb.NET是我更习惯的语言。为此,我还使用PPI协议COM1LibNoDave库来建立连接。

我正在测试的程序必须有Input 0.0 On,所以我附加了一个开关来实现它。我还做了一个vb console读取(和写入) and 的状态InputsOutputs作为LED设备上的物理指示器)以及 的状态Bit memories

安慰

控制台阅读器(LEITOR部分 - 抱歉)按我的预期工作,如果是这种情况,所有 Q、I 和 M 都正确亮起。

问题是,要运行PLC程序,我还必须点亮Q 1.1Ladder Network描述这一点的具有以下逻辑映射:

阶梯网络

我知道我必须使用代码:

Public FDS As libnodave.daveOSserialType             'Serial type
Public DI As libnodave.daveInterface                 'Interface
Public DC As libnodave.daveConnection                'Connection
Public lPPI As Integer = 0                           'Local
Public pPPI As Integer = 2                           'PLC
Public RES As Integer = 0                            'Response
Public REP As Integer = 0                            'Response
Public buf(100) As Byte

Sub Code()
    FDS.rfd = libnodave.setPort("COM1", "9600", AscW("E"))
    DI = New libnodave.daveInterface(FDS, "IF1", lPPI, libnodave.daveProtoPPI, libnodave.daveSpeed93k)
    DI.setTimeout(1000000)
    DC = New libnodave.daveConnection(DI, pPPI, 0, 0)
    RES = DC.connectPLC

    'Write on PLC:
    RES = DC.writeBytes(...
End sub

该代码工作正常,没有错误并建立连接(直到最后一个RESponse)。

这是问题所在:我可以通过执行以下操作来点亮Output 1.1(在设备上和 上console):

    RES = DC.writeBytes(libnodave.daveDB, 1, 1500, 16, buf)

在哪里

    buf = BitConverter.GetBytes(libnodave.daveSwapIed_16(30))

通过将这两个步骤再重复五次(再一次,30再用两次50,最后再用 两次50)。

我很确定我做错了什么,但是对于像我这样的人(刚刚开始),网上并没有很多这些命令描述。

谁能解释发生了什么?还有,我怎么能Q 1.1一步点亮?

4

0 回答 0