VB.net程序发送数据给PLC(求高手赐教!!!)

本人是个小白,急需应用VB通信PLC,结果发现数据发送不到,程序内容如下PrivateSubButton1_Click(senderAsObject,eAsEventAr... 本人是个小白,急需应用VB通信PLC,结果发现数据发送不到,程序内容如下
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If SerialPort_Plc.IsOpen = False Then
SerialPort_Plc.PortName = "COM6"
SerialPort_Plc.BaudRate = 9600
SerialPort_Plc.Parity = IO.Ports.Parity.Even
SerialPort_Plc.DataBits = 7
SerialPort_Plc.StopBits = IO.Ports.StopBits.One
SerialPort_Plc.RtsEnable = True
SerialPort_Plc.Open()
End If
If SerialPort_Plc.IsOpen = True Then
Label1.Text = "串口已经打开!"
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
If SerialPort_Plc.IsOpen = True Then
SerialPort_Plc.Close()
End If
If SerialPort_Plc.IsOpen = False Then
Label1.Text = "串口已经关闭!"
End If
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim a As String
a = (":010612000020C70D0A")——————个人认为主要在这里不明确
SerialPort_Plc.RtsEnable = True
SerialPort_Plc.WriteLine(a)————————个人认为主要在这里不明确
展开
 我来答
tystq
2016-04-30 · TA获得超过1201个赞
知道小有建树答主
回答量:943
采纳率:100%
帮助的人:823万
展开全部
a = (":010612000020C70D0A")'这里肯定有问题

括号必须在引号里面,不然编译不过的
你的问题是没有发送确认符,一般串口指令末尾都有换行确认符vbCr,下位机接收到vbCr后才认为是一条完整指令,改成下面的试验
Dim a As String = ":010612000020C70D0A" & vbCr
更多追问追答
追问
大侠,还是不行啊!我是想用VS2013里的 (serialport控件) 编写VB程序控制台达PLC的M0线圈,有个MSComm(VB6.0)教程里说PC向PLC发送字符命令串=“:01050800FF00F3CR”,但是与serialport应用还是有差别,没有教程,也不知在VS2013里是如我所写是否可行!?
追答
关键要看通讯协议,你是和什么PLC通讯呢?如果是三菱PLC,命令格式为:起始字符+命令号码+群组地址+位数组+数据内容+结尾字符+校验字符
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式