第一篇:TC250天车说明书
TC250天车使用说明书
第一章产品型号及名称
1.1产品型号及名称:
TC250天车
1.2产品概述:
天车是安装在井架顶部的定滑轮组,是钻机提升系统的重要部件之一。它与游车用钢丝绳联系组成一套滑轮系统系统,它可以大大降低快绳拉力,从而大为减轻钻机绞车在钻井各种作业(起下钻、下套管、钻进、悬挂钻具)中的负荷,并减轻发动机组的配备功率。
1.3制造标准:
天车制造符合API SPEC 4F《钻井和修井井架》和SY/T5527-2001《石油钻机主要提升设备》的相关技术要求。
第二章用途和适用范围
2.1用途:
天车是钻机提升系统的固定部分,它通过绞车和提升系统的游动部分一起,用来完成起下钻杆柱和下套管作业。
2.2适用范围:
本规格天车与4000m钻机的JJ250/43-K井架配套使用。
第三章技术规范及参数
型号TC250 滑轮数5+1(花穿6+1)个 最大钩载2500kN(275US tons)滑轮外径Ф1120mm 快绳滑轮外径Ф1270mm 适用钢丝绳直径Ф32mm(1 1/4in)辅助滑轮外经Ф400mm(15 5/8in)辅助滑轮绳槽Ф19mm(3/4in)起重架最大载荷50kN 外形尺寸(长×宽×高)3160×2050×3590mm 理论质量5545kg 配套井架JJ250/43-K井架
第四章主要结构及工作原理
TC250天车由天车架、主滑轮组、导向滑轮、辅助滑轮、轴承座、吊杆起重架及栏杆等组成。
4.1 天车架采用整体焊接结构,上部用螺栓分别与主滑轮轴座、导向滑轮轴座连接,下部用螺栓与井架连接。其主要的两条纵梁用Q345板材焊接而成,主要焊缝进行磁粉探伤。
4.2 导向轮总成由轮轴、支座、滑轮、轴承等组成,轴端设有1个M10×1润滑油嘴,可方便地向轴承内加注润滑脂。主滑轮总成由主轴、支座、滑轮、轴承等组成。每个滑轮内均装有一副轴承,轴端设有给每个滑轮加注润滑脂的M10×1润滑油嘴油嘴。导向滑轮与轴间轴承为352952X2-1双列圆锥滚子轴承,主滑轮轴承为37941K双列圆锥滚子轴承,它们可以保证滑轮容易转动和有较好的平衡性和抗轴向力的作用。
4.3 根据天车型式的不同,钻机游动系统绳系可采用顺穿法或者花穿法。为了使游车与井架大门相平行,滑轮组的天车轴中心线与天车架的对称中心偏斜6.341°。钢丝绳由绞车滚筒开始经过一个直径较大的导向滑轮,直接从井架外引至天车,避免了导向滑轮过高的线速度。
4.4 死绳和快绳分别从井架顶部两侧引出,井架大腿受力比较合理。
4.5 在滑轮的上方有支撑在天车架上的护架,可防止钢丝绳从滑轮绳槽内脱出。
4.6 滑轮绳槽按照API SPEC 8A规范设计,最大提升绳系为5×6绳系,钢丝绳直径为Ф32mm。
4.7 天车和井架的联接靠2个Ф30的定位销定位后,用12条
M30的螺栓固定在井架上。
4.8 天车下部悬挂有两个辅助滑轮,可分别用于两台气动绞车起吊重物,每个滑轮的负荷为50 KN(5t)。
4.9 天车架下面装有防碰天车的方木,对提升系统起安全保护作用。
4.10 天车配有吊杆起重架,供维修天车用,架式结构,最大起重量50KN(5tf)。
第五章运输、安装及使用
5.1运输:
天车整体包装发运。天车辅助滑轮捆绑在天车架上,天车下部的方木拆下,用铁丝捆绑在天车架上,随天车一起发运。
5.2安装:
天车和井架的联接靠2个Ф30的定位销定位后,用12条M30的螺栓固定在井架上。天车滑轮起重架在地面完成装配后用销子连接在天车上。装好天车下部的方木,并固定牢靠。
5.3使用:
根据天车型式的不同,钢丝绳采用顺穿法或者花穿法。
第六章维修、保养及故障排除
6.1天车在安装、开始工作前以及工作期间必须进行如下检查:
6.1.1检查各滑轮转动是否灵活,有无阻滞现象。
6.1.2检查各螺母是否松动,如有松动应及时上紧。
6.1.3检查栏杆相互间的联接是否可靠,管座上的焊缝有无碰裂现象,如有损坏,应及时修补。
6.1.4检查护架是否被碰坏,是否碰上滑轮,影响滑轮转动。
6.1.5检查各滑轮轴承在使用前是否注满润滑脂,在工作期间要按规定时间进行润滑,并应仔细检查润滑油道是否正常。
6.1.6检查各润滑轴承的运转是否正常。
6.1.7检查各润滑轴承的温升,不得大于50℃。
6.2滑轮槽的磨损及修复检查:
6.2.1滑轮槽的大小和形状对钢丝绳寿命有很大影响,所以应定期用量规对滑轮槽测量,测量磨损滑轮槽用的量规应符合下列尺寸:
钢丝绳公称直径d=32mm
量规半径Rg=16.15+0.038mm
6.3保养:
6.3.1 润滑点:天车主滑轮轴两端的5个黄油嘴;导向滑轮轴端上的1个黄油嘴;辅助滑轮轴端的2个黄油嘴。
6.3.2 润滑周期及润滑脂:每周润滑一次,用GB491-19872号钙基润滑脂。
第七章 售后服务
公司地址:河南省濮阳市苏北路东段
邮编:457001
电话:(0393)8802016***
E-mail: zhongyuanchentao@163.com
第二篇:天车使用说明书
20/5t交流桥式起重机使用说明书
机床电气系统一、概述
20/5t交流桥式模拟起重机是湖南铁道职业技术学院实训中心为了满足中级、高级维修电工实训和中、高级维修电工等级证考试,而自行设计和安装调试的一台教学用设备。该模拟起重机除了机械部分外,其电气设施部分与实际的20/5t交流桥式起重机相比,具有完全相同的电气控制系统,同时具有电气线路标准化、操作灵活、使用安全、维修方便教学直观等特点。
二、电气组成部分
20/5t交流桥式起重模拟机有5台YR7114A型绕线式异步电动机(副钩电机M1、小车电机M2、大车电机M3与M4共同拖动、主钩电机M5),同时有PXQY1-150控制屏柜和3台ITJ15/32-1型凸轮控制器以及1台LK10-10/1212型主令控制器等进行拖动控制。电机过载保护由XQB-150-2型保护屏柜中的KI1~KI5过电流继电器实现过载和过流保护,KI0为总过流保护。YA1~YA5分别为副钩、小车、大车、主钩的制动电磁铁。SQ1、SQ2为小车前后限位开关,SQ3、SQ4为大车左右限位开关,SQa、SQb为主、副钩超高限位开关,SQc为楼梯安全开关,SQe为天桥门安全开关,SQd为司机室门安全开关,SA为紧急停止开关。
三、电路工作原理
(一)副钩、小车、大车电路
副钩、小车、大车电路的控制原理基本相同,只是大车的拖动是由2台电机拖动。现以大车为例分别介绍电动机的主电路、控制电路及其安全、联锁保护电路。
1、大车电路工作准备
合上电源开关QF1线路通入电源,合上紧急开关SA,在所有凸轮控制器及主令控制器均在“0”位,司机室门、楼梯门、天桥门均关好,相应的安全开关SQc、SQe、SQd均闭合,所有的过电流继电器均未动作的情况下,按下启动按钮SB,接触器KM线圈得电吸合,并通过联锁触点SA3—5与SQ4或SA3—6与SQ3组成自锁电路。若限位开关被压切断自锁电路,KM失电使电动机停止转动,此时应使大车向相反的方向运动,则必须先将大车凸轮控制器SA3手柄回到“0”位,才能使KM线圈重新通电吸合。
2、大车控制电路
1)电动机定子电路的控制
在合上电源开关QF1时,三相交流电的一相U3经接触器KM的主触点,直接与电动机M3、M4的一相相连,V2、W2通过接触器KM、电流继电器KI3、KI4、凸轮控制器触点SA3与电动机M3、M4的另外二相相连。当SA3的操作手柄向左或向右转动时(第1~5档),凸轮控制器将电源按正序或逆序送入电动机定子绕组中,实现电动机正转(大车向右运动)、反转(大车向左运动)、停止控制。
2)电动机转子电路的控制
凸轮控制器SA3有五对触点控制电动机转子电阻接入与切除,以达到调节电动机转速的目的。
控制电动机M3、M4转子绕组电阻的五对触点通断情况是对称的,大车凸轮控制器SA3操作手柄向右或向左转动时,大车则朝着相应的方向移动。当控制手柄置于第1档时,电动机转子绕组串入全部电阻低速运行,当置于第2、3、4、5档时,触点3R1与4R1、3R2与4R2、3R3与4R3、3R4、4R4与3R5、4R5在相应的档位上闭合(见SA3的触点状态表),转子电阻被逐级切除,电动机的转子转速逐步升高。
3)大车凸轮控制器的安全联锁
凸轮控制器SA3—7用作零位起动保护,只有控制手柄置于“0”位时SA3—7闭合,按下SB,KM才能得吸合并自锁,在其它位置时SA3—7均断开,KM都不能得电,起失压保护作用。联锁触点SA3—5与SA3—6起联锁作用,SQ3、SQ4起大车的左右限位保护作用。
(二)主钩控制电路
合上QF1、QF2、QF3,主令控制器SA4置于“0”位,S1闭合,电压继电器KV得电并自锁,为电动机M5起动作准备。
1、主钩上升电路
当SA4手柄位于上升“1”档时S3、S4、S6、S7闭合(见SA4的触点状态表),KM2、KM3、KM4得电吸合,制动电磁铁YA5、YA6得电而松开电磁抱闸,电动机M5在切除电阻5R6的情况下正转,主钩低速上升。
当SA4手柄分别位于上升第2、3、4、5档时,KM5、KM6、KM7、KM8、KM9分别逐级得电,电机转子绕组的电阻被逐级切除,电机的速度也逐级升高。从原理图中可知,主钩电动机M5转子绕组回路电阻切除是平衡切除的。
2、主钩下降电路
(1)下降“J”准备档
当SA4位于下降“J”档时,触点S3、S6、S7、S8闭合,电动机加入正序电源,电磁抱闸无电未松开制动轮,因此电动机在切除两级电阻的情况下,仍无法转动。这档是下降准备档,将齿轮传动部件啮合好,防止下放重物时突然运动而使传动机构受到剧烈的冲击。
(2)下降“1”、“2”档
当SA4位于下降“1”档时,触点S3、S4、S6、S7闭合,电动机加入正序电源,电磁抱闸得电松开制动轮,转子回路切除一级电阻,电动机在负载倒拉反接制动状态下低速放下重
物。当SA4位于下降“2”档时,触点S7断开,电动机转子加上全部电阻,电磁转矩比下降“1”档减小。如果负载产生的倒拉力矩小于电磁转矩,则负载将被提升,这时应将SA4手柄转向下一档。
(3)强力下降“3”、“4”、“5”档
当SA4位于下降“3”档时,触点S2、S4、S5、S7闭合,电动机加入逆序电源,转子回路切除一级电阻,电动机运行在反转电动状态。当SA4位于下降“4”档、下降“5”档时,增加触点S8、S9与 S10、S11、S12闭合,电动机每增加一档,转子电阻被切除两级。在这三档中,如果负载较轻或空钩时电动机工作在反转电动状态放下负载,下降“3”档转速低于下降“4”档转速,下降“4”档转速低于下降“5”档转速。当负载很重,在负载倒拉力矩下,电动机的转速超过同步转速,则电动机运行在再生发电制动状态,负载下降速度大于电动机的同步转速,下降“3”档转速高于下降“4”档转速,下降“4”档转速高于下降“5”档转速。下降“3”、“4”档速度太高非常危险,因此在重载快速下降时,常用下降“5”档,手柄经制动下降“J”~下降“5”时,应快速经过下降“3”、“4”两档,所以电路在下降“5”档专门用接触器KM9常开触点与下降接触器KM1串联,使只有在下降时SA4手柄由下降“5”档转到下降“2”、“1”档,不小心停留在下降“4”或“3”档时,其电路状态与下降“5”档相同。
用KM10的常闭触点与KM3的线圈串联,使得只有KM10释放后KM3才能吸合,保证在反接过程中转子回路串有一定的电阻,防止过大的冲击电流。
(三)其他电路
380/220V的隔离变压器TC经过接触器KM引入380V电源,当接触器KM得电吸合后,在起动起重机前应响铃通知周围的人群。电铃DL通过脚踏开关SA0得电响铃。电路中三孔插座可作为单相电源使用。当L1、L2、L3有电时,位于司机室进门右上方三个电源指示灯亮,作为电源指示。
四、操作注意事项
(1)在起动起重机前,必须响铃通知周围的人群引起注意。
(2)在下降“J”档时,手柄在该档停留时间不允许超过3S,以免电动机堵转而烧坏。
(3)轻载和空钩时,不使用下降“1”、“2”档下放负载,否则负载将被提升。
(4)在下降“1”、“2”下放很重的负载时,时间不允许超过3分钟。
(5)重载快速下降时,SA4手柄应快速转到下降“5”档,不允许在下降“3”、“4”档停留。
第三篇:TC
第五章 TC 算术运算符和算术表达式
5.1 概述
TC语言中运算符和表达式数量之多,在脚本语言中是少见的,正是丰富的运算符和表达式使TC 语言功能十分完善。这也是TC语言的主要特点之一。
TC语言的运算符具有不同的优先级,在表达式中,各运算量参与运算的先后顺序要遵守运算符优先级别的规定.5.2 TC运算符简介
TC语言的运算符可分为以下几类:
1.算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)。
2.关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(= =)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。4.赋值运算符:用于赋值运算,分为简单赋值(=).算术运算符用来计算,关系和逻辑运算符,用来作比较,赋值运算符,用来给变量赋值.5.3算术运算符和算术表达式 1.基本的算术运算符
加法运算符“+”:加法运算符为双目运算符,即应有两个量参与加法运算。如a+b,4+8等。 减法运算符“-”:减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等 乘法运算符“*”:双目运算. 除法运算符“/”:双目运算。参与运算量均为整型时,结果也为整型,舍去小数。
如果运算量中有一个是浮点型,则结果为浮点型。
〖例〗
1.字符型 字符
2.字符=字符串.格式化(“nn%d,%dn”,20/7,-20/7)3.辅助.消息框(字符)4.字符=字符串.格式化(“nn%d,%dn”,20.0/7,-20.0/7)5.辅助.消息框(字符)复制代码
本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有字符型参与运算,因此结果也为实型。
求余运算符(模运算符)“%”:双目运算。要求参与运算的量均为整型。求余运算的结果等于两数相除后的余数。【例】
1.字符型 字符
2.字符= 字符串.格式化(“%dn”,100%3)3.辅助.消息框(字符)复制代码
本例输出100除以3所得的余数.2.算术表达式和运算符的优先级
表达式是由常量、变量、功能和运算符组合起来的式子。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。表达式求值按运算符的优先级进行。单个的常量、变量、功能可以看作是表达式的特例。算术表达式是由算术运算符和括号连接起来的式子。
算术表达式:用算术运算符和括号将运算对象(也称操作数)连接起来的、符合TC语法规则的式子。
以下是算术表达式的例子:
1.a+b 2.(a*2)/c 3.(x+r)*8-(a+b)/7 复制代码
运算符的优先级:TC 语言中,运算符的运算优先级共分为8级.1级最高,9级最低.在表达式中,优先级较高的先于优先级较低的进行运算,同优先级下,在TC中,都是从左向右计算. 一级,[](数组下标调用),功能调用, 二级,!(逻辑非运算)
三级,()(括号里面的表达式)
四级,*(乘操作),/(除操作),%(求余) 五级,+(加法),-(减法)
六级,>(大于),<(小于),>=(大于等于),<=(小于等于) 七级,==(等于),!=(不等于) 八级,&&(与操作) 九级,||(或操作)
第六章 TC的关系运算符和表达式
6.1 概述
在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作,这样的比较运算在TC中称为关系表达式,运算符号称为关系运算符.6.2 关系运算符
比较两个量的运算符称为关系运算符。
关系运算符及其优先次序
在TC语言中有以下关系运算符: 1.< 小于
2.<= 小于或等于 3.> 大于 4.>= 大于或等于 5.== 等于 6.!= 不等于
关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。
6.2 关系表达式
关系表达式的一般形式为:表达式,关系运算符 ,表达式
例如:
1.a+b>c-d 2.x>3/2 3.复制代码
都是合法的关系表达式,关系表达式的值一定是为逻辑型,真 或者是 假,如:5>0的值为“真”。(a=3)>(b=5)由于3>5不成立,故其值为假。
6.3 逻辑运算符和表达式
逻辑运算符极其优先次序,TC语言中提供了三种逻辑运算符: 1.&& 与运算 2.|| 或运算 3.!非运算
与运算符&&和或运算符||均为双目运算符.非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的,关系可表示如下:
1.!(非)→&&(与)→||(或)复制代码
“&&”和“||”低于关系运算符,“!”高于算术运算符。
按照运算符的优先顺序可以得出:
a>b && c>d 等价于(a>b)&&(c>d)
!b==c||dc&&x+yc)&&((x+y) 逻辑运算的值 逻辑运算的值也为“真”和“假”两种。其求值规则如下: 1.与运算 &&:参与运算的两个量都为真时,结果才为真,否则为假。 例如: 5>0 && 4>2 由于5>0为真,4>2也为真,相与的结果也为真。 2.或运算||:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如: 5>0||5>8 由于5>0为真,相或的结果也就为真。 3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。 例如:!(5>0)的结果为假。 虽然TC编译在给出逻辑运算值时,逻辑运算值只有“真”,“假”这2个值。不是“真”就为“假”。 逻辑表达式 逻辑表达式的一般形式为:表达式 逻辑运算符。 其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。 例如:(a&&b)&&c 根据逻辑运算符的左结合性,上式也可写为: a&&b&&c 逻辑表达式的值是式中各种逻辑运算的最后值,以“真”和“假”分别代表。 下面做个表达式的综合实例: [例] 1.功能 逻辑型 测试(逻辑型 a,整型 b,整型 c)2.如果(a&&(c>b))3.辅助.消息框(“a等于真并且c大于b”)4.如果结束 5.6.如果(!a||(c+b)>100)7.辅助.消息框(“a等于假或者c加b的值大于100”)8.如果结束 9.10.返回 真 11.功能结束 复制代码 以上代码中,我们不难看出,如果测试函数传入的参数a为真,并且c大于b的时候,会弹出对话框“a等于真并且c大于b” ,如果传入的参数a为假,并且b+c的值大于100的时候,会弹出对话框“a等于假或者c加b的值大于100”.第七章 TC 过程化程序设计 7.1 概述 过程化程序设计是一种以事件为中心的编程思想,就是分析出解决问题所需要的步骤,然后用功能把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.对比较面向对象,面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与功能的方法可以很好的组织.比如拿学生早上起来的事情来说说这种面向过程吧.粗略的可以将过程拟为: (1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校 而这4步就是一步一步的完成,它的顺序很重要,你只须一个一个的实现就行了,我们用TC的形式表现出来 1.空间 我的一天 2.3.功能 逻辑型 起床()4.//起床...5.返回 真 6.功能结束 7.8.功能 逻辑型 穿衣()9.//穿衣...10.11.12.13.14.15.16.17.18.19.20.21.22.返回 真 功能结束 功能 逻辑型 洗脸刷牙()//洗脸刷牙...返回 真 功能结束 功能 逻辑型 去学校()//去学校...返回 真 功能结束 23.空间结束 复制代码 我们调用的时候就这样了 1.我的一天.起床()2.我的一天.穿衣()3.我的一天.洗脸刷牙()4.我的一天.去学校()复制代码 过程化程序设计中,我们经常把把一个问题分解成若干小问题,再对每个小问题进行分解(分模块),知道每个问题的难度都足以小,能够解决为止,然后再把这些小问题合并,就解决了大问题,一般要完成过程化程序设计主要由以下三种逻辑结构组成: 顺序结构:顺序结构是一种线性、有序的结构,它依次执行各功能 循环结构:循环结构是重复执行一个或几个模块,直到满足某一条件为止 选择结构:选择结构是根据条件成立与否选择程序执行的通路 采用过程化程序设计方法,程序结构清晰,易于阅读、测试、排错和修改。由于每个模块用功能定义封装,执行单一功能,模块间联系较少,使程序编制比过去更简单,程序更可靠,而且增加了可维护性,每个模块可以独立编制、测试.下面我们来一一介绍它们.第八章 TC 如果语句 8.1 如果语句 如果语句,也就是 如果 语句,用如果语句可以构成分支结构.它根据给定的条件进行判断,以决定执行某个分支程序段.TC语言的如果语句有两种基本形式,并且每个如果语句的结尾都要有一个如果结束。 (注:关键字中英文对应关系,如果else,如果结束select,条件default,选择结束while,循环结束endfor) 图解: 实例: 1.2.功能 逻辑型 测试()3.整型 i=0 4.遍历(100)5.i=i+1 6.遍历结束 7.返回 真 8.功能结束 复制代码 本例程序将重复执行100次循环,每执行一次,i值加1。 2、条件表达式的遍历 遍历(整型 i=0;i<100;i++)…… 循环语句 遍历结束 注: 整型 i : 表示定义了一个遍历语句的变量。 i<100 : 这个是遍历语句成立的条件,只要i的值小于100,就会一直遍历下去,直到i大于等于100结束遍历。 i++ : 这个语句相当于 i = i + 1。 图解: 实例: 1.2.功能 逻辑型 测试()3.整型 sun=0 4.遍历(整型 i=0;i<100;i++)5.sun = sun + 1 6.遍历结束 7.辅助.消息框(转换.整型转字符型(sun))8.返回 真 9.功能结束 10.复制代码 10.1.3 跳出语句 跳出语句通常用在循环语句中。如果没有跳出语句,则将成为一个死循环而无法退出。当跳出语句用于循环语句中时,可使程序终止循环而执行循环后面的语句, 通常跳出 语句总是与如果语句联在一起。即满足条件时便跳出循环。 (注:关键字中英文对应关系,跳出continue)循环(表达式1) …… 如果(表达式2)继续 …… 如果结束 循环结束 例: 1.2.功能 逻辑型 测试()3.整型 i=0 4.循环(i<100)//设置循环 5.如果(i<50)6.i=i+2 7.继续 //判断满足条件者,不在执行后面的语句,直接返回循环语句继续循环 8.如果结束 9.i=i+1 10.11.循环结束 返回 真 12.功能结束 复制代码 事例中当i的值小于50的时候,i每次都是加2的,当i的值大于50的时候就每次加1了。 第十一章 TC 功能定义 11.1 TC功能概述: 功能是TC源程序的基本模块,通过对功能模块的调用实现特定的功能.TC语言中的功能相当于其它高级语言的子程序,在其他高级语言中,比如C,C++中,称为函数.允许用户建立自己定义的功能。用户可把自己的算法编成一个个相对du立的功能模块,然后用调用的方法来使用功能。可以说TC程序的全部工作都是由各式各样的功能完成的,所以也把TC语言称为功能式语言。 由于采用了功能模块式的结构,TC语言易于实现结构化程序设计。使程序的层次结构清晰,便于程序的编写、阅读、调试。 在TC语言中可从不同的角度对功能分类。 一.从功能定义的角度看,功能可分为TC库功能(API)和用户定义功能两种。1)TC库功能(API):由TC系统提供,用户无须定义,也不必在程序中作类型说明,只需在程序中直接调用即可。2)用户定义功能:由用户按需要写的功能。对于用户自定义功能,不仅要在程序中定义功能本身,而且在主调功能模块中还必须对该被调功能进行类型说明,然后才能使用。 二.TC语言的功能兼有其它语言中的功能和过程两种功能,所有TC功能都是有返回值的功能:此类功能被调用执行完后将向调用者返回一个执行结果,称为功能返回值。如数学功能即属于此类功能。由用户定义的这种要返回功能值的功能,必须在功能定义和功能说明中明确返回值的类型。 三.从主调功能和被调功能之间数据传送的角度看又可分为无参功能和有参功能两种。 1)无参功能:功能定义、功能说明及功能调用中均不带参数。主调功能和被调功能之间不进行参数传送。 2)有参功能:也称为带参功能。在功能定义及功能说明时都有参数,称为形式参数(简称为形参)。在功能调用时也必须给出参数,称为实际参数(简称为实参)。进行功能调用时,主调功能将把实参的值传送给形参,供被调功能使用。 四.TC语言提供了极为丰富的(API)库功能,这些库功能又可从功能角度分类。具体可以在TC程序中或者帮助文档中看到相应的功能功能和使用说明。功能定义的一般形式 (注:关键字中英文对应关系,功能endfunction,返回-return) 1.无参功能定义的一般形式 1.功能 功能类型 功能名()2.//声明部分.....语句 3.//执行的操作 4.返回 功能类型 5.功能结束 6.复制代码 其中功能类型和功能名称为功能头。返回类型指明了本功能的类型,功能的类型实际上是功能返回值的类型.该返回类型与前面介绍的TC的各种类型相同。功能名是由用户定义的标识符,功能名后有一个空括号,其中无参数,但括号不可少。功能到功能结束中的内容称为功能体。功能体是执行具体操作的功能调用的集合,它完成了功能的实现操作.1.功能 逻辑型 Hello()2.//这里添加你要执行的代码 3.辅助.消息框(“Hello,world ”)4.返回 真 5.功能结束 复制代码 这里,Hello作为功能名的功能,Hello功能是一个无参功能,当被其它功能调用时,弹出Hello world对话框。 2.有参功能定义的一般形式 1.功能 功能类型 功能名(形式参数表列)2.//声明部分.....语句 3.返回 功能类型 4.功能结束 复制代码 有参功能比无参功能多了一个内容,即形式参数表列。在形参表中给出的参数称为形式参数,它们可以是各种类型的变量,各参数之间用逗号间隔。在进行功能调用时,主调功能将赋予这些形式参数实际的值。形参既然是变量,必须在形参表中给出形参的类型说明。例如,定义一个功能,用于求两个数中的大数,可写为: 1.功能 整型 max(整型 a, 整型 b)2.如果(a>b)3.返回 a 4.否则 5.返回 b 6.如果结束 7.功能结束 复制代码 第一行说明max功能是一个整型功能,其返回的功能值是一个整数。形参为a,b,均为整型量。a,b的具体值是由主调功能在调用时传送过来的。在function 和endfunction 中的功能体内,除形参外没有使用其它变量,因此只有语句而没有声明部分。在max功能体中的return语句是把a(或b)的值作为功能的值返回给主调功能。有返回值功能中至少应有一个return语句。 11.2 功能的参数和功能的值 1.形式参数和实际参数 前面已经介绍过,功能的参数分为形参和实参两种。在本小节中,进一步介绍形参、实参的特点和两者的关系。形参出现在功能定义中,在整个功能体内都可以使用,离开该功能则不能使用。实参出现在主调功能中,进入被调功能后,实 19 参变量也不能使用。形参和实参的功能是作数据传送。发生功能调用时,主调功能把实参的值传送给被调功能的形参从而实现主调功能向被调功能的数据传送。功能的形参和实参具有以下特点: 形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在功能内部有效。功能调用结束返回主调功能后则不能再使用该形参变量。 实参可以是常量、变量、表达式、功能等,无论实参是何种类型的量,在进行功能调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。 实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配”的错误。 功能调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在功能调用过程中,形参的值发生改变,而实参中的值不会变化 例: 1.空间 测试 2.功能 逻辑型 A()3.整型 n=100 4.测试.B(n)5.返回 真 6.功能结束 7.8.功能 整型 B(整型 n)9.整型 i=n-1 10.11.12.13.14.15.16.复制代码 循环(i>=1)n=n+i i=i-1 循环结束 返回 n 功能结束 空间结束 在A功能中输入n值等于100,并作为实参,在调用时传送给s 功能的形参量n(注意,本例的形参变量和实参变量的标识符都为n,但这是两个不同的量,各自的作用域不同)。n值为100。即实参n的值为100。把此值传给功能s时,形参n的初值也为100,在执行功能过程中,形参n的值变为5050。返回主功能之后,输出实参n的值仍为100。可见实参的值不随形参的变化而变化。 2.默认参数和引用传值参数 1).默认参数: 前面已经介绍过,功能的参数分为形参和实参两种。功能通过定义形参的数据类型,调用该功能者则需要传入一个和形参相同的数据类型的参数来调用。通常情况下,功能定义了多少个参数个数,调用该功能者必须传递相应数据类型的参数个数,如果用户在功能定义参数的时候予以了初始值,调用该功能者,可以根据需要如果不需要这个参数的时候,可以不用对该参数进行赋值调用.或者修改其默认值进行调用都可以,这种功能参数的定义方式就是默认参数定义。例: 空间 我的程序 功能 整型 默认参数(整型 参数A,整型 参数B=0).....//语句 返回 0 功能结束 功能 整型 A(整型 参数A) 我的程序.默认参数(参数A)//第二个默认参数可以选择不传值 我的程序.默认参数(参数A,10)//第二个默认参数可以传入其他整型值 返回 0 功能结束 空间结束 以上例子,我们可以看到,功能:默认参数中,有2个参数,第一个是整型参数,第二个也是整型参数,但在定义的时候赋初始值等于0了,也就是默认参数。所以功能A在调用功能默认参数的时候,除了第一参数必须传入一个整型参数外,第二个默认参数可以选择性的选择传入另外一个整型值或者不传任何值。 2).引用传值参数: 前面已经介绍过,功能的参数分为形参和实参两种。功能调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在功能调用过程中,形参的值发生改变,而实参中的值不会变化。但通过我们的引用传值参数方式可以改变这种数据是单向的传递方式,我们在做一个功能定义参数的时候,在参数前面加一个“&”符号,就说明了这个参数属于引用传值。调用该功能者,在给该功能的引用传值传入参数变量的时候,如果调用者对该引用传值传入参数变量进行重新赋值的时候,在该功能调用结束的时候,该引用传值传入参数变量的值会等于调用者中重新赋予的新值,这种功能参数的定义,以 “&”符号 出现的时候,就属于引用传值参数。例: 空间 我的程序 功能 整型 引用传值(整型 &A, 整型 &B)A=A*2 B=B*4 返回 0 功能结束 功能 整型 普通传值(整型 A,整型 B)A=1, B=2 我的程序.引用传值(A,B)返回 0 功能结束 以上例子中,功能:引用传值,定义了2个引用传值的参数A和B,功能:普通传值, 在调用功能引用传值的时候, 传入了变量A,和变量B, 变量A的值赋值等于1, 变量B的值赋值等于2, 而引用传值功能会将传入的变量A的值乘于2, 将变量B的值乘于4, 所以在功能:引用传值执行到返回的时候, 传入的变量A的值由原来的1等于1*2改变等于2, 而变量B的值由原来的2等于2*4改变等于8。 3.功能的返回值 功能的值是指功能被调用之后,执行功能体中的程序段所取得的并返回给主调功能的值。对功能的值(或称功能返回值)有以下一些说明: 1)功能的值只能通过return语句返回主调功能。 返回语句的一般形式为: 返回 表达式 或者为: 返回(表达式)该语句的功能是计算表达式的值,并返回给主调功能。在功能中允许有多个返回语句,但每次调用只能有一个返回语句被执行,因此只能返回一个功能值。2)功能值的类型和功能定义中功能的类型应保持一致。例: 1.2.空间 测试 3.功能 整型 A(整型 a, 整型 b)4.返回 a+b 5.功能结束 6.7.功能 整型 B(整型 a, 整型 b)8.如果(a>b)9.返回 a 10.11.12.13.否则 返回 测试.A(a,b)如果结束 功能结束 14.空间结束 复制代码 功能A中,返回了2个参数中和的表达式,功能B者通过比较参数的大小来返回,如果参数a大于参数b返回参数a,否则传参数a和b给功能A做返回值进行返回。 第十二章 TC 功能的调用 12.1 TC 功能的调用 前面已经说过,在程序中是通过对功能的调用来执行功能体的,其过程与其它语言的子程序调用相似,通过功能所属的空间来引用调用功能的。TC语言中,功能调用的一般形式为: 空间名.功能名(实际参数表) 对无参功能调用时则无实际参数表。实际参数表中的参数可以是常数,变量或其它构造类型数据及表达式。各实参之间用逗号分隔。 (注:function对应TC中文为:功能,endfunction对应TC中文为:功能结束,return对应TC中文为:返回) 功能调用的方式在TC语言中,可以用以下几种方式调用功能: 1.功能表达式:功能作为表达式中的一项出现在表达式中,以功能返回值参与表达式的运算。这种方式要求功能是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。 2.功能实参:功能作为另一个功能调用的实际参数出现。例: 1.空间 测试 2.功能 整型 A(整型 a)3.返回 a+100 4.功能结束 5.功能 6.整型 B(整型 b)7.返回 b+100 8.功能结束 9.功能 整型 C(整型 a,整型 b)10.11.12.13.14.15.整型 max=测试.A(a)+测试.B(b)返回 max 功能结束 功能 整型 D(整型 a,整型 b)返回 测试.C(测试.A(a),测试.B(b))功能结束 16.空间结束 复制代码 功能C中整型 max=测试.A(a)+测试.B(b),是一个赋值表达式,把功能A和功能B的返回值赋予变量max。功能D者是以功能A和功能B做为了功能C的实际参数,调用了功能C,做为了返回值。 被调用功能的功能原型 在TC语言中主调功能中调用某功能之前不需要做任何声明,只要改功能功能已经编写完成而且该功能所在的空间中进行引用即可。这与使用变量之前要先进行变量说明是一样的。在主调功能中对被调功能作说明的目的是使编译系统知道被调功能返回值的类型,以便在主调功能中按此种类型对返回值作相应的处理。例: 1.空间 测试 2.功能 整型 A(整型 n)3.返回 测试.B(n)4.功能结束 5.功能 整型 B(整型 n)6.返回 测试.A(n)7.功能结束 8.空间结束 复制代码 在同一个空间中,功能间相互调用,只需要功能所在的空间的空间名:测试,引出功能名()就可以调用成功了。例子中的空间名为:测试,测试空间中有功能A和功能B,功能A要调用功能B,因为功能B要传一个整型变量,所以就这样测试.B(n)就可以调用到了,同理功能B调用功能A,也是测试.A(n)即可。 第十三章 TC 空间定义 13.1 空间定义概念 命名空间就相当于一个名称,命名空间里面包含的是功能定义和全局变量的定义,如果在不同名称的命名空间中有相同的功能名,则表示的是不同的含义,一般 我们可以这样理解,空间就是把一套功能分了类,比如TC自带的空间,把字符串的处理的功能都封装成了 字符串空间里面.,窗口的一套功能都是封到 窗口空间里面的.我们来举例说明: 一般我们新建一个项目,TC会默认为我们创建一个 以项目名称 命名的空间,这个空间名是不能修改的,假如我建了一个名称为 我的程序 的项目,会默认生成下面的代码.举例代码如下: 1.空间 我的程序 //定义默认空间 2.功能 逻辑型 开始_点击()//这里添加你要执行的代码 3.返回 真//函数返回语句 4.功能结束 5.功能 逻辑型 退出_点击()//这里添加你要执行的代码 6.辅助.退出()7.返回 真 //函数返回语句 8.功能结束 9.空间结束 //空间结束语句 复制代码 TC的默认生成的空间,自动生成的一些功能或者属性框生成的功能,一般都是事件功能,TC都封在这个默认空间里,这里的 开始_点击和退出_点击,都是界面上面两个默认按钮,开始按钮和退出按钮的点击事件,所触发的功能,也就是说,生成的EXE,当点击开始按钮时,就会执行 开始_点击 功能,事件机制这里不多做介绍,其他会有专门的介绍.假如我们想自己定义一个空间,叫 我的数学,里面实现一个加法运算,我们需要这样写:例: 1.空间 我的程序 2.//定义默认空间 3.功能 逻辑型 开始_点击()4.//这里添加你要执行的代码 5.整型 和 6.和=我的数学.加法(10,10)7.返回 真 8.//函数返回语句 9.功能结束 10.功能 逻辑型 退出_点击()25 11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.//这里添加你要执行的代码 辅助.退出()返回 真 //函数返回语句 功能结束 空间结束 //空间结束语句 //这里是自定义的空间 空间 我的数学 //这里是自定义的空间里面实现的一个自定义的功能.功能 整型 加法(整型 x,整型 y)//这里添加你要执行的代码 整型 和=x+y 返回 和 //函数返回语句 功能结束 空间结束 29.//空间结束语句 复制代码 这里,我们实现了一个 自定义的空间 叫 我的数学 ,并在这个空间里面实现了一个 加法功能,我们在 默认空间 我的程序里面 的 开始_点击()功能里调用了它,调用的格式为 我的数学.加法(10,10)它返回了10+10的结果.这样就实现了,我们的自定义的空间,大家还可以陆续在里面添加其他的功能,比如减法,乘法,什么的,当然我们这里只是举一个例子,这些功能都是直接可以用操作符实现的.数组 数组,顾名思义就是一组同类型的数。 一、数组的声明 声明数组的语法为:在数据类型后加方括号括来说明。本接仅介绍一维数组。下面是一个整型数组的例子: 1.整型[] array= 整型[10] 复制代码 这条语句定义了一个具有10个整型元素的名为array的数组。方括号中的维数表达式可以包含运算符,但其计算结果必须是一个长整型值。这个数组是一维的。下面这些声明是合法的: 1.整型[] offset = 整型 [5*2] 2.浮点型[] count = 浮点型[5*2+3] 3.复制代码 下面是不合法的: 1.整型[] offset= 整型 [5*2/3] // 数组的大小不能为浮点数 2.复制代码 二、用下标访问数组元素 1.整型[] offset= 整型 [5*2] 复制代码 表明该数组是一维数组,里面有10个数,它们分别为offset[0],offset[1],……offset[9];千万注意,数组的第一个元素下标从0开始。一些刚学编程的人员经常在这儿犯一些错误。offset[3]=25;上面的例子是把25赋值给整型数组offset的第四个元素。在赋值的时候,可以使用变量作为数组下标。 1.整型 下标 = 0 2.整型[] offset =整型[5*2] 3.重复(10)4.offset[下标] =辅助.随机数(10,30)5.下标 =下标 + 1 6.重复结束 7.复制代码 题目的意思是随机产生10~30之内的10个整数,存入到数组中。 三、数组的初始化 前面说了,变量可以在定义的时候初始化,数组也可以。 1.整型[] array = 整型[5] 2.array[0] = 1 3.array[1] = 2 4.array[2] = 3 5.array[3] = 4 6.array[4] = 5 7.复制代码 初始化值的个数可以和数组元素个数一样多。 如果初始化的个数多于元素个数,将产生编译错误;如果少于元素个数,其余的元素被初始化为0。 举个例子: 1.输入5个整数存入数组中,然后把它们从小到大排列并放在同一数组中。(思路:先找出最小的,放在第一个位置,为了防止把原先的数覆盖掉,可以把原先的第一个数和最小数的位置互换)。 1.整型[] array = 整型[5] 2.整型 i=0,j=0,min=0,stmp=0 3.重复(5)4.array[i] =辅助.随机数(10,30)// 随机生成5个数 5.i =i + 1 6.重复结束 7.字符型 输入内容 8.输入内容 = 字符串.格式化(“随机数为:%d,%d,%d,%d,%d”, array[0] , array[1] , array[2] , array[3] , array[4])9.辅助.消息框(输入内容)10.11.12.13.14.15.16.//// 开始排序 i=0 循环(i<4)min=array[i] j=i+1 循环(j<5)如果(min>array[j])// 里面的4行语句很重要 17.18.19.20.21.22.min=array[j] stmp=array[i] array[i]=array[j] array[j]=stmp 如果结束 j = j + 1 23.24.25.26.循环结束 i = i + 1 循环结束 输入内容 = 字符串.格式化(“排列后的数据为:%d,%d,%d,%d,%d”, array[0] , array[1] , array[2] , array[3] , array[4])27.辅助.消息框(输入内容)复制代码 分析:先让第一个值作为基准,如果后面有比它小的,那么就把这两个数互换一下,同时把基准换成小的值。两个数互换应该这样(stmp=a;a=b;b=stmp;),而不是(a=b;b=a;),想想这是为什么?必须要用一个变量作为桥梁。这种一个一个的把最小的放在前面的排序方法,我们形象的叫做冒泡法。 二维数组 比方说我们熟知的坐标系,在2D游戏里,一组(X,Y)坐标决定人物的位置,而这里的坐标,我们就可以用二维坐标来描述。二维数组的定义:数据类型 [][] 数组名 比方我们知道游戏里的5组坐标,那么我们就可以定义一个这样的二维数组: 整型[][] 坐标 = 整型[5][2] 这个就可以很清楚的表示:列号为0的表示X坐标,列号为1的表示Y坐标。 二维数组的引用 二维数组和一维数组的使用差不多,不过二维数组提供了二种方法遍历,一种是:先横向再纵向,另一种是:先纵向再横向。不过二种方法的效果都是一样的!那么我们来看看具体怎么访问二维数组。例如: 1.整型[][] 坐标 = 整型[5][2] 2.整型 i=0,j=0 3.循环(i<5)4.j=0 5.循环(j<2)6.坐标[i][j]=辅助.随机数(11,32)7.j = j + 1 8.循环结束 9.i=i+1 10.循环结束 复制代码 二维数组的大小:整型[][]坐标 = 整型[5][2] // 大小为 5* 2三维数组 定义: 类型[][][] 数组名 如:整型[][][] 变量 初始化大小:变量 = 整型[10][2][3] 数组的大小/长度: N*N*N 整型[10][2][3]这里的大小为10*2*3=60 数组的访问:数组名 [下标1][下标2][下标3] 下标的值为0~N-1 N为数组的长度。 多维数组操作复杂,一般用到二维就够了。 TC操作的文件,一般有三种:INI格式文件,TXT格式文件,图片文件。 1、图片文件 图片文件一般都是用做界面美化的资源,以及找图命令的资源。例如: 1.整型 图像序号,返回的x坐标,返回的y坐标 2.图像序号=图像.找图(0,0,1440,900,“d:111.bmp|d:222.bmp|d:333.bmp”,#203040,0.8,0,返回的x坐标,返回的y坐标)3.如果(图像序号>=0)4.辅助.消息框(转换.整型转字符型(返回的x坐标))5.辅助.消息框(转换.整型转字符型(返回的y坐标))6.辅助.消息框(“找到该图”)30 7.否则 8.辅助.消息框(“没有找到该图”)9.如果结束 复制代码 2、INI文件 是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了,但在某些情况,还是要直接编辑.ini才方便。 格式: INI文件是由 节、键、值组成。 节: 就是文件里中括号所表示的内容。如:[数据域] 键与值:就是文件里等号两边的内容。例如:name=张三,那么这里的name就是键,而键的值,我们就称之为值。 在TC里操作INI的命令 1.辅助.写配置(“RealmName”,“East”,“serverGerman”,“D:abc.ini”)复制代码 RealmName为节,East为键,serverGerman为值,D:abc.ini为INI文件路径。 1.字符型 字符串 2.字符串=辅助.读配置(“RealmName”,“East”,“D:abc.ini”)3.辅助.消息框(字符串)复制代码 读配置其实就是获取INI文件里的值,一个INI文件里,这个值是通过节与键来确定的。 3、TXT文件 TXT的文件操作比较复杂,所以TC提供了一个专门处理文件的空间,叫文件。这一套完整的命令,已经足够我们处理如何文件了!3.1、创建文件 整型 创建(字符型 path,字符型 attribute=“创建文件”) 第一个参数是文件的路径,第二个是文件的属性,可以是一个也可以是多个的组合。返回值是成功创建文件的文件句柄,创建失败则返回0,所以在使用的时候,要判 断函数的返回值。例如: 1.整型 文件句柄 2.文件句柄=文件.创建(“d:1.txt”,“读写|共享读|共享写|总是创建”)//自定义属性 3.如果(文件句柄==0)4.辅助.消息框(“文件创建失败”)5.否则 6.辅助.消息框(“文件创建成功”)7.文件.关闭(文件句柄)8.如果结束 复制代码 3.2、打开文件 整型 打开(字符型 path,字符型 attribute=“读写|共享读|共享写|文件要存在”) 第一个参数是文件的路径,第二个是文件的属性,可以是一个也可以是多个的组合,返回值是成功打开文件的文件句柄,打开失败则返回0,所以在使用的时候,要判断函数的返回值。 3.3、关闭文件 逻辑型 关闭(整型 handle) 这里的handle为文件句柄,这个参数是创建文件或者打开文件的返回值。当文件不需要操作了,或者是操作完毕了,我们都应该关闭文件,释放掉系统的资源。 3.4、设置文件的读写位置 逻辑型 设置游标位置(整型 handle,字符型 pos) 这个命令是用来控制文件的读写位置,可以从文件头位置开始,或者是文件结束位 置开始。当我们打开文件或者是创建文件时,文件的读写位置是在文件头位置。 例如: 1.整型 文件句柄 2.文件句柄=文件.打开(“d:1.txt”)3.文件.设置游标位置(文件句柄,“开始”)4.文件.设置游标位置(文件句柄,“结束”)5.文件.关闭(文件句柄)复制代码 3.5、向文件写入内容 逻辑型 写入(整型 handle,字符型 inputstr) 在当前的文件读写位置,向文件中写入指定的内容。handle为文件句柄,这个参数是创建文件或者打开文件的返回值。 逻辑型 写一行(整型 handle,字符型 str) 在当前的文件读写位置,写入指定的内容,并且会自动换行,而写入命令是不会自动换行的。这个命令也可以直接使用写入命令来实现,只需要在写入的内容后面增加换行符(”rn”),”r”表示回车,”n”表示换行。代码如下: 1.文件.写一行(文件句柄,“aaaa”)2.// 等价于 3.文件.写入(文件句柄,“ aaaa ”+”rn”) 复制代码 这2个写内容方法使用时,需要注意一个问题:如果写入位置在文件头,那么当文件头有内容时,会覆盖原来的内容。如果写入的内容比原有的内容长,那么会完全覆盖原有内容;如果写入的内容比原有内容短,那么只会覆盖写入长度的内容,还有一部分原有内容会保留! 逻辑型 末尾写入(整型 handle,字符型 inputstr) 在文件的末尾位置写入内容,使用这个命令的时候,TC会自动将文件的写入位置设置到文件的末尾,之后再写入数据。所以这个命令也可以用写入命令来实现,只需要在写入内容之前,将文件的写入位置设置到文件的结束位置就可以了。代码如下: 1.文件.末尾写入(文件句柄,“ aaaa”)2.// 等价于 3.文件.设置游标位置(文件句柄,“结束”)4.文件.写入(文件句柄,“ aaaa”)复制代码 3.6、获取文件的长度 整型 长度(整型 handle) 命令的返回值表示获取到文件的总大小。 3.7、判断指定路径的文件是否存在 逻辑型 是否存在(字符型 path) 这个命令用来判断指定路径的文件是否存在,如果文件不存在,则返回假,存在则返回真。这个命令一般用了打开文件的操作之前。 更多的文件操作命令,我们可以参照TC的帮助文档,只要打开TC软件,点击软件的右上角的问号,就可以打开帮助文档,之后在TC API说明里找到文件命名空间。 TC网络空间通信 TC的网络通信根据TCP/IP和UDP协议实现的,因此遵守协议的规定。那么我们先来熟悉下这2个协议吧。 UDP协议 UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络连接。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些。 类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。尤其是在需要很强的实时交互性的场合,如网络游戏、视频会议等,UDP协议更是显示出极强的威力。 UDP协议是一种面向非连接的协议,面向非连接指的是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。至于对方是否可以接收到这些数据内容,UDP协议无法控制,因此说UDP协议是一种不可靠的协议。 UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境。因为UDP协议是面向非连接的协议,没有建立连接的过程,因此它的通信效率高;但也正因为如此,它的可靠性不如TCP协议高。 UDP协议的主要作用是完成网络数据流量和数据报之间的转换:在信息的发送端,UDP协议将网络数据流量封装数据报,然后将数据报发送出去;在信息的接收端,UDP协议将数据报转换成实际数据内容。 实际上,我们可以认为基于UDP协议的Socket类似于一个码头,该码头的作用就是负责发送、接收集装箱,一个数据报类似于一个集装箱。因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器端的概念。 TCP/IP协议 TCP/IP是发展至今最成功的通信协议之一,其开放性的特点成为了因特网的基础。 在TCP/IP网络应用中,通信的两个进程间相互作用的主要模式是客户机/服务器模式。 服务器是一个进程,它一直等待着客户进程的请求以便为客户进程服务,客户进程向服务器提出请求,服务器对请求做出相应的处理并执行被请求的任务,然后将结果返回给客户机。这里还要讲到一个概念套接字(Socket),Socket是通信基石,是支持TCP/IP协议网络通信的基本单元。 一个Socket就是一个通信的端点,用以一个短整数来表示。 注意:Socket不是端口号,它只是一个句柄,代表网络协议中的一组数据,这组数据包括TCP连接中双方IP地址以及目前连接状况。一个正在被 使用的Socket都有它的类型和与其相关的网络应用进程。 在介绍UDP协议基础内容方面,我们需要对UDP和TCP进行一下简单的对比: TCP协议:可靠,传输大小无限制,但是需要连接建立时间,差错控制开销大。UDP协议:不可靠,差错控制开销较小,传输大小限制在64K以下,不需要建 立连接。 根据通信性质,Socket可以分为两类: Stream Socket(会话套接字):使用TCP协议,提供一种面向连接的可靠数据通信方式.当要发送在批量数据或想让发出的数据按顺序无重复地到达目的地时,就要使用会话套接字,但需要很多开销。 Datagram Socket(数据报套接字):使用UDP协议,提供不可靠的,非连接的数据通信方式,具有向多个目标地址发送广播数据报的能力,由于其并不十分可靠,需要应用程序负责管理数据报的排序和可靠性。 总之,若要用TCP协议那Socket就必须设为Stream,反之,用UDP就设为Datagram。 UDP协议的使用 下面介绍下UDP服务器、客户端的流程: UDP服务端创建流程 1、初始化网络环境(网络.初始化()) 2、创建套接字(网络.套接字()) 3、绑定套接字并开启端口(网络.绑定()) 4、接收或发送数据(网络.接收来自()、网络.发送到()) 5、关闭套接字(网络.关闭套接字()) 6、关闭初始化网络环境(网络.关闭()) UDP客户端创建流程 1、初始化网络环境(网络.初始化()) 2、创建套接字(网络.套接字()) 3、接收或发送数据(网络.接收来自()、网络.发送到()) 4、关闭套接字(网络.关闭套接字()) 5、关闭初始化网络环境(网络.关闭()) 图解如下: UDP模式注意: UDP模式的服务端概念比较模糊,需要接收数据需要 绑定 实例源码如下: 服务器代码 1.网络.初始化()//初始化网络环境 2.整型 服务器套接字句柄=网络.套接字(2)//创建数据报(UDP)套接字 3.网络.绑定(服务器套接字句柄,9999)//开启了计算机的9999端口,供外界连接 4.整型 rPort 5.字符型 接收缓存,rIP,发送缓存=“客户端,我是服务器端!” 6.循环(真)7.如果(网络.接收来自(服务器套接字句柄,接收缓存,100,rIP,rPort))//接收数据 8.辅助.消息框(接收缓存)9.网络.发送到(服务器套接字句柄,发送缓存,rIP,rPort)10.11.12.如果结束 循环结束 网络.关闭套接字(服务器套接字句柄)//关闭套接字释放资源 13.复制代码 客户端代码 网络.关闭()//关闭网络环境释放资源 1.网络.初始化()//初始化网络环境 2.整型 服务器套接字句柄=网络.套接字(2)//创建数据报(UDP)套接字 3.整型 rPort 4.字符型 接收缓存,rIP,发送缓存=“服务器,我是客户端” 5.网络.发送到(服务器套接字句柄,编辑框.获得文本(“编辑框0”),“127.0.0.1”,9999)//向指定地址端发送一串字符串 6.网络.接收来自(服务器套接字句柄,接收缓存,100,“127.0.0.1”,9999)//接收数据 7.辅助.消息框(接收缓存)//打印从指定地址接收的字串 8.网络.关闭套接字(服务器套接字句柄)//关闭套接字释放资源 9.网络.关闭()//关闭网络环境释放资源 复制代码 TCP/IP协议的使用 下面介绍下TCP/IP服务器、客户端的流程: TCP 服务端创建流程 1、初始化网络环境(网络.初始化()) 2、创建套接字(网络.套接字()) 3、绑定套接字并开启端口(网络.绑定()) 4、监听套接字并设置可同时连接数(网络.监听()) 5、接受连接(网络.接受()) 6、接收或发送数据(网络.接收()、网络.发送()) 7、返回等待另一客户请求(关闭网络.接受()创建的客户端套接字,重新调用网络.接受()创建新的客户端套接字) 8、关闭套接字(网络.关闭套接字()) 9、关闭初始化网络环境(网络.关闭()) TCP 客户端创建流程 1、初始化网络环境(网络.初始化()) 2、创建套接字(网络.套接字()) 3、与服务器建立连接(网络.连接()) 4、接收或发送数据(网络.接收()、网络.发送()) 5、关闭套接字(网络.关闭套接字()) 6、关闭初始化网络环境(网络.关闭()) 图解如下: 实例代码如下: 服务器代码 1.网络.初始化()//初始化网络环境 2.整型 服务器套接字句柄=网络.套接字(1)//创建流式(TCP)套接字 3.网络.绑定(服务器套接字句柄,9999)//开启了计算机的9999端口,供外界连接 4.网络.监听(服务器套接字句柄,5)//监听套接字,设置可连接数为5个 5.字符型 返回IP,发送缓存=“客户端,你好,我是服务器”,接收缓存 6.循环(真)//循环接受处理连接 7.整型 客户端套接字句柄=网络.接受(服务器套接字句柄,返回IP)//这里程序会挂起等待,直到有客户端连接到来 8.网络.发送(客户端套接字句柄,发送缓存)//向指定客户端发送一串字符串 9.网络.接收(客户端套接字句柄,接收缓存)//接收从客户端发送的字串 10.串 11.网络.关闭套接字(客户端套接字句柄)//关闭套接 辅助.消息框(接收缓存)//打印从客户端接收的字字释放资源 12.如果(接收缓存==“关闭”)//客户端如果发送 关闭 服务器将关闭 13.14.15.16.17.辅助.消息框(“服务器关闭”)跳出 如果结束 循环结束 网络.关闭套接字(服务器套接字句柄)//关闭套接字释放资源 18.复制代码 客户端代码 网络.关闭()//关闭网络环境释放资源 1.网络.初始化()//初始化网络环境 2.整型 客户端套接字句柄=网络.套接字(1)//创建流式(TCP)套接字 3.网络.连接(客户端套接字句柄,“127.0.0.1”,9999)//这里测试所以连接的是本机 4.字符型 发送缓存=“服务器,你好,我是客户端”,接收缓存 5.网络.接收(客户端套接字句柄,接收缓存)//接收从服务器发送的字串 6.辅助.消息框(接收缓存)//打印从服务器接收的字串 7.网络.发送(客户端套接字句柄,发送缓存)//向指定服务器发送一串字符串 8.网络.关闭套接字(客户端套接字句柄)//关闭套接字释放资源 9.网络.关闭()//关闭网络环境释放资源 复制代码 网络命令的使用范围很广泛,大家可以根据自己的需要加入深入。 1、路网的建立 (1)路网简单的话,直接在transcad里新建相应的地理文件,画出小区和路网 (2)将cad的路网图导入,autocad——输出dxfR12的文件——在transcad中打开(具体参读工程蚂蚁的借助AUTOCAD在transcad中建立线网层方法,他在那里写的非常详细,包括一些注意事项) 在这里我有几点不明白的需要大虾指点:路网在cad里画好后,需在结点打断(交叉口),是怎么实现的一次性打断?我只会一条一条的打断 2、od矩阵的导入 (1)excel做成一维的形式,直接用transcad打开,然后使用MATRIX--IMPORT倒入到transcad中 (2)似乎还有另一种更简单的方法,我一直没搞明白?? 3、小区编号问题 transcad默认的小区ID与实际对小区的编号不一致,为使其一致可使用输入输出法:先将小区增加一个编号的字段,输出小区文件为标准的地理文件,此时ID选择编号,再输入该文件即可 4、小区合并大区的问题 (1)在小区中增加一个字段daqu(2)需要合并的小区在这一字段填写所在的大区区号(3)操作:tool/geographic analysis/merge by value 5、质心连杆问题: (1)质心连杆在分配后影响到图的美观,可以先将连杆作选择集,然后将其status设置为invisable(2)质心连杆上的交通量分配不合理,可以通过多设置几条质心连杆或将其连接到不同的道路上(比如支路)具体的方法我还没有掌握,恳请大虾赐教 6、几个小细节 (1)作分配时,对任何的路网或节点的数据进行过改动后,需重新生成net文件才可生效(2)对于生成的期望线,可以通过map/color theme将其设置为颜色样式 7、有transcad作公交规划的步骤:(1)在transcad软件中,建立城市道路网(2)划分交通小区,并建立公交OD文件 (3)在道路网的基础上,在建立公交线网,并布设公交站点(4)将交通小区型心与公交站点连接起来 公交规划中的应用不明朗? 防 风 防 台 应 急 预 案 对于施工现场的大型起重机械等高大设备来说,大风和台风是重大危险因素,如不采取相应的预防措施,在大风和台风到来之时,必将发生施工用电线路损坏、露天高处作业设施倒塌、露天施工机械设备损坏等重大机械设备事故,给企业带来无法估量的损失。太仓港环保发电工程施工现场地处长江入海口附近,大风和台风天气时有发生,因此,特制定如下防风防台应急预案: 1、成立防风防台领导小组 组 长:郭江滨 副组长:何永军 杨浩然 付剑波 成员:各专业工地主任、各部门领导,各分包单位领导 机械化工地、锅炉工地、电气工地、加配工地为应急小分队。小组办公室设在分公司安全保卫部,联系电话为: 0512—53641661 小组主要成员联系电话: 郭江滨——5666960何永军——56669605 杨浩然——56669606 付剑波——56669613 综合部主任——56669668 锅炉工地主任——56669618 物资部主任——56669607 加配工地主任——56669696 机械化工地主任——56669606 2、职责 2.1领导小组负责处理防风防台工作中的重大问题,提供防风防台所需的资源,对突发和紧急事件组织人力、物力抢险。 2.2 领导小组组长负责台风到来前的应急准备和应急响应及台风过后的迅速抢险指挥工作。 2.3 领导小组副组长负责协助组长组织进行台风到来前的应急准备和应急响应及台风过后的迅速抢险工作。 2.4 领导小组成员负责组织各自部门及工地人员,在领导小组的统一指挥下,做好台风到来前应急准备和应急响应的所有预防措施及台风过后的迅速抢险工作。 2.5 领导小组负责日常天气监测,天气预报异常时及时通报相关人员,并启动本预案。 3、应急准备 3.1 分公司物资供应部负责配备油布、雨具、应急照明用具和医药用品等必要的应急物资。 3.2 分公司综合管理部和机械化工地负责配备相应的车辆,随时等候调用。 3.3 分公司安全保卫部负责与甲方的安监部门及分公司各部门、各单位之间的联络,当有大风、暴雨、台风等恶劣天气的预报时,要第一时间通知到相关管理、操作和起重人员,以保证有足够的时间采取相应的措施。 4、应急措施 华东分公司太仓港环保发电工程施工现场将使用较多的大型履带吊、塔吊、龙门吊、汽车吊等施工机械,还有搅拌站的水泥罐等高大设备,具体防风措施为: 1、对于CKP-3500塔吊,由于施工场地的限制,遇大风天气不能将杆放倒。其防风措施为:用缆风绳将其固定牢固,设置上、下两层缆风绳,每层四个方向固定。 缆风绳要设置专用地锚,地锚布置在合适位置并用混凝土浇筑。缆风绳选用Φ17钢丝绳。 大风或台风来临之前,吊车副臂要按吊车规程规定调整好角度,同时将吊车夹轨器夹紧,必要时打上铁鞋。 2、对于龙门吊车,其防风措施为利用缆风绳将其四条支腿固定。将四条支腿沿轨道方向用缆风绳固定牢固,缆风绳绑点可利用其轨道作为地锚。 缆风绳选用Φ17钢丝绳。 龙门吊车闲置不用时,需将夹轨器夹紧并打上铁鞋。吊车夹轨器要经常进行检查维护,保证其可靠使用。 3、施工现场将使用较多的大型履带吊,配置有CC—2500型450t履带吊、SCX2000型200t履带吊及KH-180型50t履带吊。履带吊的安全防风措施,是安全工作重点之一。大型履带吊车在大风或台风来临前选取合适的位置停下,并选好方向,将其臂杆调整至最小角度或放至地面,以防大风袭击。由于履带吊车较多并且其臂杆较长,对不易将臂杆放至地面的吊车,可根据现场实际情况,将臂杆放至钢架或有足够强度的结构上并固定牢固。 4、对于汽车吊,在大风或台风来临前选取合适的位置顺风停下,将四条支腿全部伸出,将车身抬起。 5、搅拌站的水泥罐属高大设备,很容易遭受大风或台风袭击,必须采取防风措施。在每个罐体周围打上三个地锚,用混凝土灌注牢固,配备三根Φ17钢丝绳作为缆风绳,以备在大风或台风到来前随时将罐体固定牢固。 5、应急响应 1、当接到有大风、暴雨、台风等恶劣天气的预报后,安保部马上通知相关管理、操作和起重人员,对重要设施、大型机械设备、重点部位进行重点检查,形成记录,对存在的隐患立即组织人力和物力进行排除;防风防台领导小组开始工作,安排专人值班,密切注意台风动态,值班电话为0512—53641661。 2、在大风或台风到来之前,停止一切施工作业,按照应急措施要求把所有大型机械设备固定牢固,然后所有人员全部撤离施工现场,进入封闭的厂房内或回到办公室和班组休息室,所有机动车辆停放在车库内或停车场。 3、在大风或台风到来之后,所有人员必须躲在安全的室内,任何人不得出门。 4、在大风或台风过后,防风防台领导小组立即组织应急小分队进行检查,如有人员伤亡立即送医院抢救,然后对所有机械、设备、用电设施、生产生活临建设施等进行全面细致地检查,发现险情及隐患立即排除,尽量把损失降到最低,并尽最大可能尽快恢复生产和正常生活。 防 风 防 台 应 急 预 案 批准:郭江滨 编制:付剑波 黑龙江省火电第三工程公司华东分公司 2003年9月5日第四篇:TC学习心得
第五篇:应急预案(台风)tc专题