欧姆龙plc网络与通讯
CompoBUS/S网络是一种主从式总线结构的控制网络,它的响应速度快,实时性强,实现简便,可以对远程的I/O实现分散控制。该系统由一台PLC(CS1、CQM1H、C200Hα)带CompoBUS/S主站模块或一台SRM1主控单元作为主站,一个主单元最多可带32个远程从站单元,控制256个输入输出点。接16台从站单元、128点输入输出点时可达到0.5ms的高速通信。CompoBUS/S通信系统具有以下特点: 主干线远距离通信:新增了远距离通信模式,允许主干线的通信距离达到500m。 丰富的主站和从站单元:有C200HW-SRM21-V1、CQM1-SRM21-V1、SRM-C0-V2主站单元和SRT2系列的从站单元,支持高速通信和远距离通信。 高速通信:在高速通信方式下,接16台从站单元,128点控制时,可实现0.5ms的快速通信。 配线简单:主单元和从站单元间、从单元和从单元间可用4线制电缆连接,其中2根为信号线,2根为电源线,从而大幅度减少了配线。CompoBUS/S通信参数如表4所示。 表4CompoBUS/S通信参数 3、PLC与上位计算机之间的通信 在计算机与PLC构成的集散控制系统中,多数是由一台计算机与数台PLC形成1:N的通信模式。该模式系统中PLC负责现场高速数据采集、实现逻辑、定时、计数、PID调节等控制任务并通过串行通信口向上位计算机传送PLC工作状态及有关数据,从而实现计算机对控制系统的管理。PLC与上位计算机之间通信的准确、可靠、高效率是集散控制系统的关键所在。 3.1PLC与上位机的链接方式 PLC与上位计算机形成1:N通信模式有两种连接方式: 方式一较少使用连接适配器,也不用信号转换,但若中间某一台PLC出故障,其后的PLC将无法与上位机通信;方式二使用了信号转换模块,当某一台PLC出故障不影响其它PLC通信。 3.2PLC与上位机的通信过程 通信开始先由上位机依次向网内的PLC发出一串测试帧命令,PLC接到上位机的完整帧后,首先判断是不是自己的代号,若不是就不予理睬,若是则发送回答信号。上位机接到回答信号后,与发送测试数据比较,若两者无误,发出可以进行数据通信的信号,转入正常的数据通信。上位机与PLC实施链接通信,上位机具有优先发送权,每发送完一帧发送权就在上位机与PLC之间轮换。当收到结束符或分界符时,发送权从发送单元传给接收单元。其帧发送与接收如图3.2所示。 上位机发出命令格式和PLC响应格式如下图: @:帧开始标志 节点号:通信网络中每一台PLC被分配给的唯一番号 标题号:该帧的通信命令码 结束码:返回命令的完成状态 正文:设置命令参数 FCS:帧校验顺序代码 结束符:命令结束 通信参数设置为:波特率9600bps,数据格式由DM0902/DM1920的第00-07位和DM0921/DM1921共同设定,默认方式时DM0902/DM1920的第00-07位的值为00000000,此时DM0921/DM1921区不起作用。每条指令都以标识号(UnitNumber)和操作码/头(Header)开始,以校验码(FCS)和结束标志(Terminator)结束。 帧发送时,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.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”
方式一
方式二
图3.2上位机与PLC间的帧发送与接收
图3.4帧发送检查
欧姆龙plc网络与通 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)