6GK7243-1EX01-0XE0厂家供应
当控制计算机与各相距较远时,一般采用串行通信方式而不采用并行通信方式。这是因为并行通信系统的造价较高、众多的连线不仅容易引入干扰,也容易发生线路故障。控制系统中常用的串行通信一般采用rs-232c串行总线标准。rs-232c是工业协会(eia)推荐的一种普及型异步通信总线标准,目前已广泛应用到了计算机系统中外围设备与主机的连接中。
rs-232c应用于计算机系统时存在如下问题:
(1)传送距离过近:由于受负载容许值的限制,其传送距离一般不得超过15m;
(2)电平偏移:由于信号地公用且通信双方的信号地需连结在一起,rs-232c应用于长距离通信时信号地线上会存在较大的电流,使得电平发生偏移,容易造成传输错误;
(3)潜在的接地问题:rs-232c总线有一个信号地和一个屏蔽保护地,通信中,双方的信号地需连在一起,屏蔽保护地却不一定允许接在一起,dte的信号地与屏蔽保护地之间又不一定绝缘,这就存在一个潜在的接地问题,使得系统的抗干扰能力较差。
为了扩大串行通信的有效传输距离,提高通信传输速率,增强抗干扰能力,eia制定了rs-422/485串行总线通信标准,也叫双端接口标准或平衡传输电气标准。rs-422/485与rs-232c的关键不同之处在于将单端输入改为双端差分输入,信号地不再共用,通信双方的信号地不再连在一起。
rs-422/485的优点在于:
(1)采用双端差分输入,总线的抗干扰能力强;
(2)互连双方的信号地分立,两条信号线形成回路,避免了电平偏移,也避免了rs-232c中的潜在接地问题;
(3)输出端采用双端平衡驱动,其信号放大倍数高,信号传输距离远。rs-422支持全双工串行通信,rs-485支持半双工串行通信。
在本文涉及的dnc(direct numerical control or distributed numericalcontrol)信息系统中,由于每个生产单元的数控机床数目都远远超过计算机所配置的串口数(一般为两个),在本系统采用了台湾moxa公司生产的c320turbo/pci型多串口卡/板,以达到扩展串口的目的。为了扩大通信的有效传输距离,本系统采用了rs-232长距光隔转发器(串口长线收发器fc232)。
在此基础上,本文提出了一种满足企业生产需求的数控机床数据传输系统的网络结构,并对该结构中的dnc数据传输的实现进行了详细的描述。
1 系统网络体系结构
图1所示为dnc数据传输系统的网络体系结构。整个dnc数据传输系统由管理层和设备层组成,管理层由1台计算机、rs-232c通讯扩展卡/板及有关外围设备组成,用来完成零件nc程序的管理和传送等功能。设备层由数控机床和相应通讯接口组成,其中通信接口具有双向传送功能,实现nc程序或者控制程序的双向传输。dnc系统除了常规的nc程序上/下载外,还能较好满足边加工边传递nc程序的要求。
1 系统网络结构
有两点需要注意的是,(1)当所要控制和通信的数控机床数超过dnc主机自配置的串口时,将会带来一定的不便。本系统采用moxainbbblioc320turbo/pci多串口卡(c32010t/pci)和多串口扩展板(c32047t)来实现串口扩展的问题;(2)当dnc主机与数控机床通讯距离较远时(超过15m),使用标准的rs-232c电缆就不能进行有效的通讯了。通讯双方设备使用电缆直通连接,在两端设备不共地或引入处有干扰时,往往会毁坏设备接口。本系统采用rs-232长距光隔转发器(串口长线收发器fc232,成对使用)来解决10km以内距离的rs-232设备间通讯时的延长距离和保护接口问题,其中fc232可以直接插在c32047t上,图中的线起的是示意作用。由于fc232可直接插于rs-232接口上,不需外接电源,兼容rs-232接口软件编程标准,这也给工程人员施工带来方便。
2 系统串行通信的实现
2.1 nc程序控制工作流程
nc控制系统工作流程如图2所示:
在dnc串口通信程序中,串口拥有自己独立的线程,这些线程包括串口信号监视线程、串口数据接收线程和串口数据发送线程。其中主线程主要负责处理nc加工程序编辑、通信协议数据库、界面信息等,而辅助线程负责监视串口信号、串口数据接收和串口数据发送。用主线程来专门处理信息,使程序能迅速响应命令和其他事件,用辅助线程来完成费时的工作,这样可以避免由主线程处理这些工作时阻塞程序信息的处理。dnc计算机与数控机床通信的具体过程如图3。
2.2 功能实现的关键技术
功能实现主要依赖于串口的连接,而连接与否的关键在于串口属性的设置和各设备之间的连接方式。由于各数控机床的通信协议存在着差异,这就使得在设置通信串口属性时与机床的配置一致。以fanuc-0t为例,该机床参数设置:tvon= 0;iso = 1;i/o =0;波特率设置参考0552参数;停止位设置参考0002参数的后一位即stp(1为2,0为1),默认为2;奇偶校验位设置为even;数据位设置为7。如果设置有误将会造成通信错误或数据传输失真。
同样,各数控机床通信协议的不同,使得各设备间的连接方式也就不同,也就是说各串口之间的连线方法要有所不同,这里由于篇幅原因就不再赘述。
3 结束语
串行通信技术已在dnc通信系统中得到了广泛的应用,其关键技术将主要围绕提高nc程序传送的正确性、快速性;减少信号干挠,提高可靠性等方面。使用vc语言编制的本dnc信息系统,实现制造过程的nc数据传输,该系统具有结构简单、运行快速、工作稳定等特点,易于实施,对促进dnc技术的发展具有积极的意义。本文所述的dnc信息系统已在实际中得到了应用,并取得了良好的应用效果。
随着计算机系统的应用和微机网络的发展,通信功能越来越显的重要。这里所说的通信是只计算机与外界的信息交换。通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,特别适合于远距离传输。对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各cpu之间的通信一般都是串行方式。串行接口是微机应用系统常用的接口。
许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,cpu与接口之间仍按并行方式工作。
1 串行通信的概念
图1-1
所谓“串行通信”是指外设和计算机间使用一根数据信号线(需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。如图1-1所示。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。
由于cpu与接口之间按并行方式传输,接口与外设之间按串行方式传输,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。典型的串行接口的结构如1-2所示。
图1-2
在数据输入过程中,数据1位1位地从外设进入接口的“接收移位寄存器”,当“接收移位寄存器”中已接收完1个字符的各位后,数据就从“接收移位寄存器”进入“数据输入寄存器”。cpu从“数据输入寄存器”中读取接收到的字符。(并行读取,即d7~d0被读至累加器中)。“接收移位寄存器”的移位速度由“接收时钟”确定。
在数据输出过程中,cpu把要输出的字符(并行地)送入“数据输出寄存器”,“数据输出寄存器”的内容传输到“发送移位寄存器”,由“发送移位寄存器”移位,把数据1位1位地送到外设。“发送移位寄存器”的移位速度由“发送时钟”确定。
接口中的“控制寄存器”用来容纳cpu送给此接口的各种控制信息,这些控制信息决定接口的工作方式。
“状态寄存器”的各位称为“状态位”,每一个状态位都可以用来指示数据传输过程中的状态或某种错误。例如,用状态寄存器的d5位为“1”表示“数据输出寄存器”空,用d0位表示“数据输入寄存器满”,用d2位表示“奇偶检验错”等。
能够完成上述“串<- ->;并”转换功能的电路,通常称为“通用异步收发器”(uart:universalasynchronous receiver and transmitter),典型的芯片有:inbbb8250/8251,16550。
modbus通讯协议是一种工业通讯协议,它定义的是一种设备控制器可以识别和使用的信息帧结构,独立于物理层介质,可以承载于多种网络类型中。modbus协议把通信参与者规定为“主站”(master)和“从站”(slave),数据和信息的通信遵从主/从模式,当它应用于标准modbus网络时,信息被直接传送。modbus总线网络中的各个智能设备通过异步串行总线连接起来,只允许一个控制器作为主站,其余智能设备作为从站。采用命令/应答的通信方式,主站发出请求,从站应答请求并送回数据或状态信息,从站不能够自己发送信息。modbus协议定义的各种信息帧格式,描述了主站控制器访问从站设备的过程,规定从站怎样做出应答响应,以及检查和报告传输错误等。网络中的每个从设备都必须分配给一个唯一的地址,只有符合地址要求的从设备才会响应主设备发出的命令。
由于modbus总线系统开发成本低,简单易用,并且现在已有很多器、、显示屏等都具有modbus通信接口,它已经成为一种公认的通信标准。通过modbus总线,可以很方便地将不同厂商生产的控制设备连成工业网络,进行集中监控。
modbus初为plc通信而设计,它通过24种总线命令实现plc与外界的信息交换。这些总线命令对应的通信功能主要包括ai/ao、di/do的数据传送。但不是很多modbus设备的控制只使用其中的几条命令,对其余命令不做反应。
1.modbus通信格式
modbus协议定义了两种传输模式,即rtu(remote terminalunit)和ascii。在rtu模式中,1字节的信息作为一个8位字符被发送,而在ascii模式中则作为两个ascii字符被发送,如发送字符“20”时,采用rtu模式时为“00100000”,采用ascii模式则成为“00110010”+“00110000”(ascii字符的“2”和“0”)。可见,发送同样的数据时,rtu模式的效率大约为ascii模式的两倍。一般来说,数据量少主要是文本时采用ascii;通信数据量大是二进制数值时,多采用rtu模式。
主站一次可向一个或所有从站发送通信请求(或指令),主设备通过消息帧的地址域来选通从设备。主站发送的消息帧的内容和顺序为:从站地址、功能码、数据域(数据起始地址、数据量、数据内容)、crc校验码;从站应答的信息内容和顺序与主站信息帧基本相同。modbus除了定义通信功能码之外,还定义了出错码,标志出错信息。主站接收到错误码后,根据错误的原因采取相应的措施。从站应答的数据内容依据功能码进行响应,例如功能代码03要求读取从站设备中保持寄存器的内容。
modbus部分功能码
2. crc校验的实现
modbus通信的rtu模式中,规定信息帧的后两个字节用于传递crc(cyclic redundancycheck,循环冗余校验)码。发送方将信息帧中地址域、功能码、数据域的所有字节按规定的方式进行位移并进行xor(异或)计算,即可得到2字节的crc码,并把包含crc校验码的信息帧作为一连续的流进行传输。接收方在收到该信息帧时按同样的方式进行计算,并将结果同收到的crc码的双字节比较,如果一致就认为通信正确,否则认为通信有误,从站将发送crc错误应答。
rtu模式一般采用crc-16冗余校验方法,crc-16的校验码为16位(2字节),其中低字节在前,高字节在后。实现crc校验有两种方法:根据crc校验的定义公式进行计算,或者在程序中建立crc校验值表。在程序中使用前者更容易实现,这里需要使用crc生成多项式x16+x15+x2+1。该多项式对应的码组系数为18005h(16进制),去除高位,对应的16位余数为8005h,即为crc-16常数。crc-16校验过程如下:将crc寄存器的每一位预置为1;把该寄存器值与8bit的信息帧数据进行异或,结果存于该寄存器;对crc寄存器从高到低进行移位,在高位(msb)的位置补零,而低位(lsb,移位后已经被移出crc寄存器)如果为1,则把寄存器与crc-16常数进行异或,否则如果lsb为零,则无需进行异或。重复上述的由高至低的移位8次,个8bit数据处理完毕,用此时寄存器的值与下一个8bit数据异或并进行如前一样的8次移位。所有的字符处理完成后crc寄存器内的值即为终的crc值。crc添加到消息中时,先加入低字节,高字节。
3. 链路特征
modbus标准的物理层可以采用rs-232串行通信方式,但在长距离通信中常采用rs-422或rs-485代替。在多点通信情况下只采用rs-485方式,rtu模式下的modbus系统采用屏蔽双绞线,通信距离可达1000m。一条总线上多可配置31个从站设备。传输线上的信息交换是半双工的,即只能有一台设备允许发送信息,主站在发送下一条指令之前等待从站回应,从而避免了线路的冲突。
rtu模式的传输格式是1个数据位,2个停止位,没有奇偶校验位。通信数据安全由控制参数crc-16码保证。rtu接收设备依靠接收字符间经过的时间判断一帧的开始,如果经过3个半的字符时间后仍然没有新的字符或者没有完成帧,接收设备就会放弃该帧,并设下一个字符为新一帧的开始。