统主要分为画布类(GCanvas)、工具类(GT oo1)和命令类(GCo mm and)3大类。
1)GCanv as类是实现绘图画布管理的公共基类,是创建图形、操纵图形的一个矩形区域,是所有其他图形的容器。其中定义了画布的共有属性,图层变量和公共接口,这些类成员决定了可以操作的画布对象的方法,所有绘图工具必须以画布管理类作为实现命令操作的载体,所有绘图画布必须通过它来创建和实现。
2)GT ool工具类是绘制图案使用的所有工具的基类,其中包括了工具葙类GToo l Box、工具管理类GT ooM l gr、创建工具类GC rea teToo l和它的派生工具类组成.
3)GComm and类负责管理所有的工具操作命令,其派生类GC rea t Co mm and.实现了其具体的方法,可以将每次操作的历史记录按照图层进行分类管理,实现了图层间命令历史链表互不相关,达到图层和命令链表的统一。
2 工艺程序设计系统功能分析
电脑横机工艺程序设计系统是在图案设计系统的基础上,设计和选择工艺参数,并将所设计的图案转换成相应的工艺数据,以便驱动机器编织出相应的产品,其主要功能包括: 2.1 导纱器配置
当图形绘制完成之后,首先要排列导纱器。根据机器结构不同,每台机器可以配备6到8条导纱器轨道,每条轨道上左右各可以排列1到2把导纱器,一般最多可以排列32把导纱器,程序可以采用图形的方式或表格的方式选择在编织时所用到的各把导纱器,并将其配置到相应的轨道上。可以通过选中相应的导纱器图标将其拖动到相应的导纱器轨道上。此外还可以调整导纱器距布边的距离。
2.2 工艺参数设定
系统主要采用在花形设计窗口中添加控制列的方式实现,在控制列中应该包括花形每一行的工艺数据,如密度、牵拉值、速度、所用导纱器号、循环次数、机头运行方向等。这些值在这里可以用不同的颜色表示出来,各种颜色所代表的数值需另在数据表中给出。
3 系统界面设计
为了给用户提供一个稳定、高效、直观、易学且操作方便的设计平台,对界面的设计采用窗口式指令和菜单式编程相结合。编程方式分为自动编程和手动编程,由于其编程方式不同,主界面也不同。自动编程主界面分7大区:调色板区、绘图编辑工具栏区、菜单及常用工具区、状态显示区、绘图工作区、编织符号库区和控制条码区。手动主界面比自动界面少了编织符号库区的控制条码区。为方便用户操作,常用工具区设置了常用的一些工具按钮,其功能和菜单里对应的先项一样。菜单包括了软件的所有功能选项及其快捷键,主要由文件、编辑、显示、工具和帮助组成;调色板区提供32种可供选择的画笔颜色。在自动编程中表示纱色信息,在手动编程中表示编织动作;绘图编辑工具栏区显示所有的图形绘制和编辑工具;状态显示区用于显示各种提示或状态信息,如画布尺寸、画笔颜色、鼠标位置和颜色、当前激活工具等信息;控制条码区仅在自动编程中使用,用于设定花型图的工艺参数;编织符号库区提供织法库、翻针库、摇针库、摇床针数选择和提花组织库;绘图工作区用于工作人员进行花型和组织结构设计。
4 结论
以C#为开发工具,以基于面向对象和多图层概念的设计思想为指导,设计并实现了一套电脑横机新型花型准备系统。该系统具有灵活性、多样性、可拓性和独立性等特点。用户可以根据自己的操作习惯按不同的操作顺序灵活地设计需要的花型组织。不但允许用户在一定范围内选择特定的组织符号,还允许用户自定义花型模块,实现子程序嵌套设计。另外,花型设计模块能够独立完成花型设计,对不同型号的机型能够自动生成不同的控制器代码,且系统性能稳定,效率较高,价格相对便宜。
参考文献
[1]刘甲耀,严桂兰.C#程序设计教程[M].电子工业出版
社,2007.
[2]吕文达.精通C#程序设计[M].清华大学出版社,2004.
[3]殷泰晖,张强,杨豹.C#编程从基础到实践[M].电子工业出
版社,2007.
[4]周长发.C#面向对象编程[M].电子工业出版社,2007.
作者简介:贾敏瑞(1978-),男,天津工业大学计算机与自动化学院硕士研究生,主要研究方向:图形图像处理;韩其睿,男,教授,天津工业大学,主要研究方向:图形图像处理等。
收稿日期:2008-09-18(8449)
文章编号:1671-1041(2009)01-0082-03
串口仪器仪表通讯协议对比研究
刘本伟,柯永振
(天津工业大学计算机与自动化学院,天津300160)
摘要:本文主要针对两种简单串口通讯设备,分析其通讯协议,设计其通讯驱动,用模拟串口和驱动两种方式尝试与之通讯,然后对两种结果进行对比,探讨简单串口通讯协议在设计方面存在的问题,并提出一些改进意见和建议。
关键字:串口设备;串口通讯协议;协议设计
中图分类号:TP311 文献标识码:B
串口,串口设备和串口通讯在计算机领域属于基本不再理会的方向。除非实在没有办法,否则,无论是USB,还是E t h-e rnet,又或者红外、蓝牙,总会有一种方便快捷的传输方式合适。但是,当学习过计算机,再走入自动化和工业控制领域之后,才发现,原来串口无处不在。大到一整套的工业流水线上,小到一个温度计,都是选择最简单的串口作为通讯手段。
1 串口通讯
串口是计算机上一种非常通用设备通信的协议。串口用于按b it进行A SCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据,其他线用于握手。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配:
经验交流 仪器仪表用户
欢迎光临本刊网站h tt p://www.e ic.co
欢迎订阅欢迎撰稿欢迎发布产品广告信息83
1)波特率:这是一个衡量通信速度的参数。
2)数据位:这是衡量通信中实际数据位的参数。标准的值是5、7和8位。
3)停止位:用于表示单个包的最后一位。典型的值为1、1.5和2位。
4)奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、
高和低。当然没有校验位也是可以的。1.1 串行通信协议
串行通信协议分为同步协议和异步协议:1)异步通信协议的实例--起止式异步协议
起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。
2)面向字符的同步协议
这种协议的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息
3)面向比特的同步协议
面向比特的协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束。这种协议的一般帧格式如图1所示。
图1 帧格式
1.2 两种串口设备通讯协议与编程问题
刚进入工业控制这个行业,接受的任务是两个简单的串串为:-123.45则累加和为:1+2+3+4+5=15,则累加和数据为015用ASC II 值表示为:30H 31H 35H 。其中,数据位100字节又分为多个段,每个段代表不同的意义。如图2。
图2 每段代表的意义在编程实现数据通讯上,分为两块:
1)物理上的通讯,即基本的串口通讯,这在许多组件中有专门的类和方法,只要调用合适的接口就好。
2)数据帧格式的组织和校验。依据通讯协议,读取命令格式简单,只要填充地址之后就好,一共4字节。接收到的数据就要麻烦一些,首先是数据格式验证,然后是校验。因为校验采用的不是标准的和校验。需要设计一个校验模块。但是接收的数据需要单独的差分算法。
在这个设备的编程过程中,除了帧格式是变长的,有不同的命令外,无论是校验还是接收数据的处理,没有很长的字节序列需要专门设计方法去分解。完全是通常的串口通讯协议驱动的框架就好。1.3 通讯对比研究
在通讯过程中,模拟串口与设备通讯,设备1监控数据如下:
11[00000061]IRP_M J_WR I TE L eng t h :0004,Data :2A 413A 5212[00000082]I RP _M J_READ L ength :0105,D ata :263A 3036353038303532363131343230303030303030303030303030303030303030303030303030303030303939383930303030303030303039393839303030303030303030303030303030303013[00000125]IRP_M J_WR I TE L eng t h :0004,Data :2A 413A 5214[00000146]I RP _M J_READ L ength :0105,D ata :263A 30363530383035323631313432303030303030303030303030303030303030303030303030303030303039393839
问题很明显,接收数据帧不完整,即使调节发送频率为2000m s 也是一样。
设备2监控数据如下:13I RP _M J_W R I T E Leng th :0009,D ata :0x020x310x440x300x310x310x030x340x3414I RP _M J_READ L eng t h :0001,D ata :0x0615I RP _M J_W R I T E Leng th :0049,D ata :0x020x320x410x140x300x310x610x310x330x390x310x200x380x300x300x310x370x360x200x420x300x300x320x200x310x310x2E 0x390x350x4D 0x200x330x300x380x2E 0x300x4B 0x470x200x320x340x300x2E 0x300x4B 0x470x030x330x3616I RP _M J_READ L ength :0012,D ata :0x060x020x330x390x410x310x300x300x310x030x340x3A
两次通讯均成功, ACK 0x06。但是第二次命令失败,0x39表示命令错误。
2 存在的问题与建议
现在,通过编程和通讯两个过程设备之间的区别:设备1功能相对简单,但是,无论是编程实现,还是通讯监控显示,设备2的处理更容易。
首先,在编程方面,设备1以为校验采用的是非标准校验,必须另外设计;而设备2采用标准BCC 校验,可以调用现成的方法。如图3。
图3 标准校验
仪器仪表用户
经验交流