FFB1224EHE FFB1224EHE FFB1224EHE 微控制器主要采用高速CMOS技术制造。信号输入端静态输入电流在1mA左右,输入电容10PF左右,输入阻抗相当高,高速CMOS电路的输出端都有相当的带载能力,即相当大的输出值,将一个门的输出端通过一段很长线引到输入阻抗相当高的输入端,反射问题就很严重,它会引起信号畸变,增加系统噪声。当Tpd>Tr时,就成了一个传输线问题,必须考虑信号反射,阻抗匹配等问题。
信号在印制板上的延迟时间与引线的特性阻抗有关,即与印制线路板材料的介电常数有关。可以粗略地认为,信号在印制板引线的传输速度,约为光速的1/3到1/2之间。微控制器构成的系统中常用逻辑电话元件的Tr(标准延迟时间)为3到18ns之间。
在印制线路板上,信号通过一个7W的电阻和一段25cm长的引线,线上延迟时间大致在4~20ns之间。也就是说,信号在印刷线路上的引线越短越好,长不宜过25cm。而且过孔数目也应尽量少,好不多于2个。[ url href="/www.51dz.com/d.asp?i=topmanazhi]>";>>更多...
当信号的上升时间快于信号延迟时间,
**台达风扇---------代理 销售**
【程先生 qq:937926739】
1、一个系统中使用的成熟技术至少应占到75%以上

为提高用户使用编程的效率,将若干个语言元素组合,构成语言元素功能组,以宏块的形式提供给用户使用,如步—转换功能组、分支—汇合功能组。通过设置组的规模得到包含有不同数量语言元素的功能组。
(五)长连接功能
在用户编程过程中,SFC语言元素的分布并非都是网格间直接相邻的。例如,任意两个语言元素A、B,A在编辑区内的网格坐标位置为(x,y,z1),B在编辑区内的网格坐标位置为(x,y+n,z2)(n≥2)。当A、B之间满足可连接条件时,则在A、B之间可以构成一个长连接。
1.连接方向的判断。根据用户在连线起点元素的鼠标输入位置来判断用户要实现的连线的方向。无须将鼠标输入位置定位到元素的连接端子上,只需处于元素块的上、下区域内就可以由软件自动判断用户要实现的连线方向。
2.自动判断是否可以连接终点元素。当确定了连接起点后,使用智能算法自动判断鼠标当前位置元素是否可为连接终点元素,并通过鼠标光标变形提示用户。
3.可视化的连线设计。
4.用户模糊输入支持。
用户无须将鼠标输入位置定位到元素的连接端子上,只需处于元素块的上、下区域内并确定后,就可以由软件将连线连接到元素的上或下连接端子上。
(六)剪贴板功能和OLE拖放
为便于用户的操作,提供了对SFC各语言元素的剪贴板和拖放功能支持,使用户可以在多个SFC组态子窗口中方便快捷地实现数据传输和共享。
(七)文字注释功能
在设计实现上将文字注释功能与SFC语言元素功能分开并分别管理。在显示模式上,采用了两个图层:处于顶层的SFC语言元素层和处于底层的用户注释层,通过可选的图层切换功能可以实现两个图层的显示和隐藏。文字注释功能包括添加、删除、移动、注释等。在编辑区域内对文字注释进行的操作不影响语言元素。
五、SFC图形系统基于VC++的实现
使用VC++语言实现组态方案。VC++所具有的高度友好的集成开发环境和功能强大的大大提高了用户进行软件开发的效率。限于篇幅,在此只给出功能设计中一些较为重要的项目的VC++实现[3]。
(一)基本语言元素对象的构造
使用C++描述,将语言元素抽象成C++类。构造1个基类和7个由此基类派生的子类,分别对应于SFC中的7种基本语言元素。基类CSFCComponent描述了图形系统中的SFC语言元素的基本特性:
Class CSFCComponent
{
Public:
BYTE m_Grid Y;//网格坐标X
BYTE m_Grid X;//网格坐标Y
Bool m_bSelected;//选择状态
CSFCComponent();
virtual~CSFCComponent();
};
步、转换和跳转3种语言元素具有较大相似性,除了继承CSFCComponent的全部属性外,还各自具有其他特有的属性,以下以步的构造为例。
步对象的构造:
Class CSFCSterx putlic CSFCComponent
{
public
…//步对象的其他属性
Void Draw(CDC* pdc,int index,int grid_width,,int grid_height);
CSFCStep();
vitual~CSFCStep();
};
并行分支、并行汇合、单行分支和单行汇合具有较大相似性。以下以并行分支的构造为例。
Class CSFCParallelbranch public CSFCComponnet
{
Public
Void Draw(CDC* pdc,int grid_width,int grid_height);
BYTE m_GridNum;//跨越的格数
CSFCParallelbranch();
virtual~CSFCParallelbranch();
};
连接对象是一种较为特殊的对象,实现各语言元素之间的连接。如下构造:
Class CSFCLink
{
public
void Draw(CDC* pdc,int grid_width,int grid_height);
BYTE gridx;//所连接的语言元素的位置坐标;
BYTE gridy_upper,gridy_lower;//所连接的语言元素上、下的位置坐标
BYTE
_upper,_lower;//所连接的
语言元素的网格层次值:
CSFCLink();
virtual~CSFCLink();
};
(二)语言元素对象二维平面管理模式的实现
构造如下的数据结构表征网格地图中的网格信息。
Type def strict GRID_INFO
{
Selector component_type[3];//语言元素的类型,3个元素分别表示网格的上、中、下3个层次;
WORD array_index[3];//语言元素在其相应类型的链表或数组中的索引值,作为语言元素在内存的逻辑地址使用,3个元素分别表示网格的上、中、下3个层次内的语言元素在相应数组中的索引值;
};
此网格地图就构成了从各元素在编辑区域的显示位置到其内存分布的逻辑地址的映射。其中selector为SFC语言元素选择子,枚举类型,如下定义。
Typedef enum selector{
null,mouse_select,step,transition,parallel_branch,parallel_joint,alternative_branch,alternative_joint,jump,,text step_transition_group,transition_step_group,alternative_group,text_move,text_rubberbcandselect,long_cut};
当用户在SFC语言元素工具箱中选择不同的语言元素时,当前选择子变量取不同的值。
网格的集合即构成网格地图,网格地图如下定义:
GRID_INFO**m_GridMap
其程序实现为:
This->m_GridMap=(GRID_INFO**)::malloc(size of(void*)*this->m_gridy_num);
for(int y=0;y<=this->m_gridy_num-1;y++)
{
this->m_GridMap[y]=(GRID_INFO*)::malloc(size of(GRID_INFO)*this->m_gridx_num);
}
//初始化格图:
for(y=0;y<=this->m_gridy_num-1;y++)
{
::memset(this->m_GridMap[y],0,size of(GRID_INFO)*this->m_gridx_num);
}
(三)剪贴板功能和OLE拖放的实现
在SFC组态器工程中,实现了对SFC基本语言元素和文本注释对象的剪贴板功能和OLE拖放,鉴于SFC基本语言元素和文本属于两种不同的范畴,因此对于其剪贴板及的操作采用了两种不同的设计实现模式。文本的剪贴板及OLE操作采用Windows系统级定义的剪贴板格式实现进程内以及进程之间的数据传输和共享,该技术已经比较成熟,实现起来也较为简单;而对于基本语言元素所构成的数据对象而言,其数据格式是自定义的,不在系统级剪贴板格式范畴内,需要使用自定义的数据传输格式[4]。
经研究分析和实验得出结论:实现系统级剪贴板格式以外的数据共享,应当实现以下两个关键环节:
(1)自定义一种剪贴板格式,用以标识用户要进行的剪贴操作和存储用户数据区域在系统中的地址。
(2)实现共享数据生成者与使用者间的数据共享协议,对放入到剪贴板上的实体数据的格式进行了自定义。
SFC组态器中的数据类型多且内容比较复杂,各元素之间要遵守严格的逻辑排序规则,在设计实现剪贴板和OLE拖放功能时要作全面的考虑。除了要将用户当前选中的SFC组件拷贝和剪切到剪贴板上外,还应将拷贝和剪切前的元素连接及排序位置一同记录到剪贴板上。以此为出发点,在本工程中,自定义了一种名为“sfc_selected_components”的剪贴板格式。
在拷贝/剪切操作时,按照下面步骤实施:①注册剪贴板格式;②打开剪贴板;③清空剪贴板;④根据要操作的对象数据计算要使用的全局内存量;⑤释放上次分配的内存,分配本次操作所需的内存;⑥存储数据;⑦关闭剪贴板。
OLE拖放技术的实现较剪贴板而言,其数据存取的原理基本相同,但形式更加简洁,主要体现在数据存储的系统全局地址的传递的表达方式上有所不同。另外,OLE拖放协议相对简单,不涉及与其他数据类型的兼容性问题[5]。