欧姆龙plc网络与通讯
帧发送时,FCS置于结束符前以检查是否发生数据错误。FCS是转换成2个ASCⅡ字符的8位数据,这个8位数据对帧开始的数据直到此帧正文结束的数据进行“异或”运算的结果。FCS检查程序如下:
400*FCSCHECK
410L=LEN(RESPONSE$)’
420Q=0:FCSCK$=“”
430A$=RIGHT$(RESPONSE$,1)
440PRINTRESPONSE$,AS,L
450IFA$=“*”THENLENGS=LEN(RESPONSE$)-3
ELSELENGS=LEN(RESPONSE$)-2
460FCSP$=MID(RESPONSE$,LENGS+1,2)’
470FORI=1TOLENGS’
480Q=ASC(MID$(RESPONSE$,I,1))XORQ
490NEXTI
500FCSD$=HEX$(Q)
510IFLEN(FCSD$)=1,THEN,FCSD$=”0”+FCSD$’
520IFFCSS$<>FCSP$,THENFCSCK$=“ERR”
530PRINT“FCSD$=”;FCSD$,“FCSP$=”;FCSP$,“FCSCK$=”;FCSCK$
540RETURN
帧发送检查格式如图3.4所示。

图3.4帧发送检查
3.3PLC与上位计算机通信程序
上位机通信软件是用VB开发的。VB具有强大的图形显示功能,可以容易开发出界面良好的图形用户界面,同时VB还提供了串行端口控件MSCOMM,程序员在利用该控件时,只需设置、监视其属性和事件,即可完成对串口初始化和数据的传输工作。通信程序如下:
Subformlload()
Mscomml.Comport=1
Mscomml.Settings=“9600,n,8,1”
Endsub
Subcommandlclick
Mscomml.Inputlen=0
Ifmscomml.Portopen=falsethen
Mscomml.Portopen=true
Endif
ForI=1toN;N为网络系统中的PLC个数
Ifi<10then
S$=“@”+“0”+str$(i)+“ts”+“abcd”
Else
S$=“@”+str$(i)+“ts”+“abcd”;abcd为测试字符
Endif
……;
Mscomml.Lutprt=sedate$
Timer1on=false
Timerl.Enable=true
Dountil(mscomml.inbuffercount<>0)
Or(timer1on=true)
Domy=doevents()
Loop
Timer1.enable=false
……
Redata,$=msconmml.Input
Ifrdata$=sedate$
……;转入正常通信数据处理
Else
Labell.Cation=str$(i)+“测试通信失败,检查线睡后再测试”
Endif
Endsub
4、结束语
OMRONPLC已广泛应用于工业过程控制,随着网络技术的不断提高和推广,PLC的控制能力和控制范围从设备级的控制发展到生产线级的控制乃至工厂级的控制。大力推广PLC的网络技术,必将加快我国工业企业向自动化、智能化发展的步伐。
评论