搞技术,搞不定,很闹心!别人的奉献可以使你明朗,心情愉悦!奉献是快乐的!不要吝啬你千辛万苦摸索出来的技术!VB.NET与三菱PLC的串行通讯要点PLC测的设置页面(在PLC左侧工程树下点击参数设置,然后写到PLC里)485硬件连接:rs232转485端的A接PLC的485BD上的RDA和SDA(如下图的红线),B接485BD上的RDB和SDB(如下图的白线)。如果以设置了还不正确,要看看电脑端的串口接好没有,连线有没有短线等。窗体源码:PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadMSComm1.CommPort=1MSComm1.Settings=9600,E,7,1MSComm1.Handshaking=MSCommLib.HandshakeConstants.comNoneMSComm1.InputLen=0MSComm1.InBufferCount=0MSComm1.OutBufferCount=0MSComm1.PortOpen=TrueEndSub按钮及文本显示源码:PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickMSComm1.InBufferCount=0MSComm1.OutBufferCount=0MSComm1.InputLen=0DimfanhuiAsStringDimzhuangtaiAsStringzhuangtai=Chr(5)+05FFBRAX00010140MSComm1.Output=zhuangtaiDoApplication.DoEvents()LoopUntilMSComm1.InBufferCount=9fanhui=MSComm1.InputText1.Text=x001状态+------+数据为:+fanhuiEndSub注意:VB6.0用chr(5)表示,但是VB.NET要用chr(5)表示,否则出错。Chr(5)+05FFBRAX00010140表示ENQ+PLC站号(05)PLC号(FF)BR(位读)A(延时时间16进制,A=10*10=100ms)X0001(读X1的状态,占4位)01(表示读取X1为首地址的1位地址)40(和校验,可以网上下载和校验计时器计算,如checksumcalculator计时器)在窗体上要自己添加mscomm控件。方法:VB.NET默认没有该控件到网上下载mscomm32.ocx到系统文件下的system32文件下,然后注册:方法:开始菜单---运行---regsvr32mscomm32.ocx