用vb pc连接plc,用mscomm控件,向plc发送命令output,为啥反馈的信息input还是发送的命令,未得到数据
展开全部
你最好先看看PLC的串口针脚定义,再确定PC和PLC的连接线路是否正确。然后再调软件。另外你用的什么PLC?
如果PC端接收到的数据和发出去的数据相同,很可能是9针串口的2、3脚短接了。
另外要把mscomm控件的串口参数和PLC设置一致,波特率、校验位、数据位、停止慧神位等(通常是9600,N,8,1;也有其他的,看PLC的说明),再有mscomm控件的数据接收和发送方式也需要注意下。
mscomm控件的InputMode 属性确定用Input 属性读取的数据类型。如果设前兆亏置 InputMode 为 comInputModeText,Input 属性通过一个 Variant 返回文本数据。如果设置 InputMode 为 comInputModeBinary,Input 属性通过一个 Variant .返回二进制数据的数组。
mscomm控件的Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串的 Variant。发送二进制数据,必须传递一个包含字节数组的 Variant 到Output 属性。
正常情况下,如果发送一个 ANSI 字符串到应用程序,可猜册以以文本数据的形式发送。如果发送包含嵌入控制字符、Null 字符等等的数据,要以二进制形式发送。
如果PC端接收到的数据和发出去的数据相同,很可能是9针串口的2、3脚短接了。
另外要把mscomm控件的串口参数和PLC设置一致,波特率、校验位、数据位、停止慧神位等(通常是9600,N,8,1;也有其他的,看PLC的说明),再有mscomm控件的数据接收和发送方式也需要注意下。
mscomm控件的InputMode 属性确定用Input 属性读取的数据类型。如果设前兆亏置 InputMode 为 comInputModeText,Input 属性通过一个 Variant 返回文本数据。如果设置 InputMode 为 comInputModeBinary,Input 属性通过一个 Variant .返回二进制数据的数组。
mscomm控件的Output 属性可以传输文本数据或二进制数据。用 Output 属性传输文本数据,必须定义一个包含一个字符串的 Variant。发送二进制数据,必须传递一个包含字节数组的 Variant 到Output 属性。
正常情况下,如果发送一个 ANSI 字符串到应用程序,可猜册以以文本数据的形式发送。如果发送包含嵌入控制字符、Null 字符等等的数据,要以二进制形式发送。
参考资料: msdn
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询