随着我国经济社会的不断发展,铁路运输的客运和货运需求也在逐步增大,这就对铁路运输安全管理提出了新要求。下面是我为大家整理的铁路运输安全管理论文,供大家参考。
摘要:近年来,徐沛铁路运输结构发生显著变化,路车周转时间的长短同比已难以客观反映运输效率与效益;经过调研改“路车周时”为“路车吨运量成本支出”考核。首先调研分析内部主观、客观及管理因素,外部主客观因素;其次遵循“办法简单”的原则,区别对待单位、岗位或人员,采取正激励、负激励或正负激励相结合;第三树立“节约成本就是绩效工资”理念,变季度兑现为月度体现。实现了可观的经济效益,并能为类似企业专用铁路管理创新提供积极的借鉴作用。
关键词:企业铁路;管理;创新
徐沛铁路位于苏鲁豫皖四省交汇,现隶属于中煤集团大屯公司,是大屯公司煤电运一体化综合经营的重要一环,现拥有内燃机车9台,自备车辆329辆,担负煤炭、矿建和地方货物运输,是机、车、工、电、辆等门类齐全,制度体系相对完善的煤炭企业专用铁路,可办理全国货物直通运输业务,多年来保持企业铁路Ⅰ级标准,始终处于国内同行业管理领先水平,年总货运量已达1500余万吨。
一、考核实施背景
铁路货车周转时间是客观反映专用铁路运输 企业管理 水平及运输组织工作质量与效率的一项综合性指标,货车占用费是专用铁路运输成本的重要组成部分,加速货车周转可以减少对国铁货车占用费的支出,提高其运输效率和经济效益,实现降本增效目标。
1.多年来的徐沛铁路路车周时考核办法在提高货车周转率和压缩周转时间方面起到较好作用,但由于近几年来徐沛铁路运输结构发生显著变化——外运减少、内运及到达货物大幅增加,货车周转时间的长短与前些年相比已缺乏客观可比性,该指标同比已难以客观反映企业铁路运输效率与效益。
2.2013年下半年,经济转型、市场调节致整个煤炭系统面临大面积亏损的局面,降本提效成为煤炭企业应对当前时期的不二选择,隶属于煤炭企业的专用铁路须以内外部挖潜应对不利形势。
3.国企担负的就业与维稳等社会责任限制了用人制度中的裁员与薪酬政策的灵活应对,自然减员办法及相对波动且波幅不大的薪酬分配机制应对急剧的市场变化更显得力难从心。隶属国企的煤炭专用铁路自身运输经营特点造就了对主业依附较重的状况难有根本改变,在政策框架下自身挖潜依然首当其冲。
4.相关单位、科室及重点岗位人员在企业景气度不佳、收入下降等情况下更需要直观地看到经济利益刺激,以提振士气,坚定他们与企业共克时艰、创新前行的决心和勇气。
5.在大的经济环境面前,企业都在节支降耗、降本增效,这也是市场经济给企业生存与发展提供的长期课题的一个方面。而这一方面结合煤炭企业专用铁路运输经营特点就成了主要方面,对于微利单位或处在盈亏平衡点上的困难企业尤显关键,管理创新呼之欲出。经过深入调研徐沛铁路改“路车周时”为更客观的指标“路车吨运量成本支出”考核并与相关科室及单位考核指标、职工绩效工资挂钩。
二、路车吨运量成本支出的内涵
路车吨运量成本支出在这里仅指某段时期内煤炭企业专用铁路向国铁支付的货车占用费之和与国铁货车进出专用铁路总运量的比值(单位:元/吨)。国铁货车自接轨站进入专用铁路时起至专用铁路作业完成将货车交出时止,每车每小时需要向国铁支付货车占用费(目前为5.7元/车小时)。这对于专用铁路来讲是一项数目可观的成本支出,能够大幅降低路车吨运量成本支出这一比值,既提高了铁路运输作业效率,也减少了专用铁路运输成本支出,每月可减少支出数十万元,降本增效潜力可观。
三、主要创新内容和具体 措施
徐沛铁路紧紧围绕“安全发展、改革创新”这一主线,创新完善内部细节管控机制,在降本增效工作中锲入“路车吨运量成本支出”这一指标,先内后外、内外结合,持续提升经营运作水平,取得了显著成效,具体管理与考核实施如下:
1.组织人员充分调研
(1)内部主观因素
从管理的角度来讲,在内外部环境相对稳定的前提下,人的因素永远是第一因素。内部职工铁路运输成本意识、责任心、主动性须进一步加强;一线重点关键岗位外联内协工作水平、运输组织工作能力、业务素质有待进一步提高;一线相对关键岗位工作责任心亟待进一步提高。管技人员强调客观,缺乏敢说真话的精神,缺乏踏实的工作作风、严谨的工作态度,须沉下心来、下到现场,增强调查研究的工作意识。
(2)内部客观因素
多年来的减员提效造成适合调车作业的人员相对紧张,补充人员受到一定限制,一职多能的用工制度存在进一步深化的空间。主要运输设备存在不足。路企直通运输改变了原有的机车交路,内部机车动力供应偏紧;国铁运价调整等诸多因素致专用铁路运输结构发生较大变化,煤炭直通运输变为内部转港运输,自备车辆时显严重不足。接入的非运用车交出时编入列车受限,大量增加了调车工作量;零星杂车、矿料、路料的到达,站停待作业时间相对较长的情况亟待改变;封锁施工、回煤装车给运输组织带来一定影响。
(3)内部管理因素
约束和激励机制需要进一步完善,原考核办法太繁导致可操作性降低,奖励面广、波动小,同岗位差距小直接影响关键岗位人员工作积极性;运输组织程序、煤炭调运组织安排的不尽科学合理与有效,动力的合理运用存在进一步优化和调整空间;设备维护保养尚未实时到位,主要行车设备维修、工电务施工时间长和施工区段长期限速等,对运输生产的干扰大;对各专用线站场(厂矿企业)装卸车时间标准需重新核定,对其货车延期占用费的核收需进一步规范。
(4)外部主客观因素
国铁西陇海线调度集中及开天窗施工,支线列车进出严重受限,造成上行列车等牌现象较严重。为了确保列车高速运行安全对路车装车质量及装载加固要求提高,造成作业时间增加;国铁商检人员检查装载质量,配备人员相对不足,对列车的及时开出存在一定影响。国铁货运生产管理信息系统上马实现了信息实时上传,方便客户查询,但延缓了货运制票。货管匹配通道拥堵,改计划号为运单号制票等延缓了制票速度,车等票现象时有发生。路内外联劳协作尚存不足,运销部门或矿、厂提报计划为24小时日计划,而时常受到路局调度不均衡配车影响,有车待送和有货等车现象也时常发生;红牌车、SS等非运用车、卸空棚车及装好地方货物编挂开出受限,导致增加列车解编次数,延后列车开行时间。地方货物到达大户货车集中到达,装卸机具及人员队伍存在不足;部分企业物流配货受总部控制,给车辆配给造成较大难度,客观造成货车站停待对位时间延长,成本转嫁问题尚需进一步沟通协调。
2.制定办法并推进实施
压缩路车周转时间减少货车占用费的支出是专用铁路节支增效的重要组成部分。徐沛铁路在不违反大屯公司政策前提下,有针对性的区别对待各相关单位及内部岗位人员。利用降本提效的有利时机制定完善管理考核奖惩办法,把所有影响货车周转的内外部主、客观及管理因素尽力纳入考核范围并进一步完善,有针对性地采取正、负激励相结合的机制,坚持运输组织、设备、管理与考核并重。
(1)进一步加强运输生产调度工作
铁路调度是运输生产组织的中枢,规范和加强其标准化管理,树立并维护其权威地位,能够确保铁路运输生产的集中领导、统一指挥、协调动作、安全高效。徐沛铁路进一步加强运输生产调度工作,强力地维护运输生产调度指令的严肃性和权威性,使运输生产各环节更加顺畅,形成了“安全高效、有序可控”的运作机制;注重强化运输调度人员工作责任心的培养,提高其运输组织及业务水平,定期进行个人指标完成情况分析,有力地促进其做好指挥、监督、服务、协调的有机统一。
(2)专用铁路内部考核
遵循“效益决定分配与差别导向”原则,坚持工作质量好坏、业绩考核优劣与月度绩效工资挂钩的思路,采取正负激励相结合,客观体现劳动评价,将开源节流、降本增效考核纳入薪酬分配改革,总体把握、稳慎推进,变路车周时考核为路车吨运量成本支出考核,变季度兑现为月度体现。各岗位考核办法(细则)遵循“简单的办法只要好用就是好办法”的原则,努力做到附表及说明详尽,数据来源客观,计算 方法 简单明确。在实际工作中,要求职工牢固树立“时间就是效益、节约成本就是绩效工资”的理念,在绩效工资的发放上废除同工同酬,根据业绩考核兑现承诺“上不封顶,下不保底”。①运输生产调度人员的考核(正激励)路车吨运量成本支出以1.62元/吨为参考,以路车月度运量为基础,按节超额的3.5%为标准总体把握调度人员奖罚总额((1.62-实际完成)*路车月度运量*3.5%),辅之以个人工作质量与业绩并放大收入差距比例确定其所得奖罚。个人考核指标计五项:每班路车平均停时、月度计件工作量、机车使用效率、接入与交出杂车、杂车对位与取出等,比重分别为5、2、1.5、0.75、0.75。强化了班平均周时及杂车各作业环节的考核力度,能够真实地反映每个调度员运输组织能力和工作的积极性。再将分配差距扩大为原始数据差距的数倍(扣除人均原始得分的40%),组织调度人员学习并严格落实。②车务段人员的考核(正激励)路车吨运量成本支出以1.62元/吨为参考,以路车月度运量55万吨为基础,按节超额的50%为标准总体把握车务人员(不含段领导)奖罚总额((1.62-实际完成)*月度路车运量*50%),并明确关键岗位人员在奖罚总额中的相对比例,在此基础上细化相关指标并采取几何梯度落实加减标准进行独立考核,如:明确集配站车站值班员人均对应奖励标准(4人)及与之密切的岗位人员按系数比例挂靠。车站值班员再按照相关直接指标和间接指标完成情况分别兑现(扣除40%平均得分基数后按实际得分奖励)。③其他科室和基层单位(负激励)对应考核以下单位绩效工资总额(根据各单位、部门生产安全实际另有指标核算绩效工资)部分扣除,并根据具体情况补偿运输生产调度和车务人员,举例如下:机务段:机车动力因素影响运输生产以台次月度汇总180分钟为基数计算,每超1分钟扣除绩效工资相对金额;工务段:线路限速以每处小时汇总计、线路中断以分钟计;通信水电段:停用基本闭塞、调度电话、行车电话中断以分钟计,通话质量差减半计,通讯、信号、电力、联锁设备故障抢修再以次计;车辆段:路车检车误扣误甩、误放被查拉回等以辆次计,处理车辆故障超时以分钟计;物质供应科:路料卸车自进入专用铁路时起至卸车完毕止,以36小时/批为基数;汽车队:延误生产用车以分钟计。
(3)公司内部(铁路外部)各矿、厂装卸车实行奖罚并举
徐沛铁路充分利用公司政策,按年度总投入20~30万元奖励标准,联合公司相关部门在公司所属各矿、厂装卸车单位推行货车装卸车时间考核,定点查标、制定时间标准,月度考核节奖超罚,季度刚性兑现并要求:①公司负责经营管理考核的部门牵头协调,铁路部门负责具体的日常工作。②确定所有被考核单位奖罚总额,并严格限制副科以上领导奖金额不得超过本单位所得奖金额的15%上限。③各被考核单位根据其精神,制定本单位的《考核实施细则》。④每季度召开一次由各矿、厂分管领导参加的考核结果发布会,奖励现金支付,罚款则从内部银行划拨,与会期间返回上季度奖金发放单,确保其执行力并进行有效监督。
(4)进一步加强“外运优先、路车优先、先外后内、先远后近”的运输组织原则及配套措施的有效落实
坚持“外运优先、路车优先、先外后内、先远后近”的运输组织原则,在保障重点煤炭运输的前提下,做好抢运徐矿集团、地方煤炭及杂货运输的组织工作。严格控制铁路货车的现车保有量,努力提高装卸车作业安全与质量,合理安排人员、机车动力及路车、自备车的组织调配,使外勤、车号、列检等人员的工作能够平行作业,尽力减少铁路货车非作业停留时间,提高运输生产安全及铁路运输工作效率。
(5)做好运输组织及相关专题分析
坚持徐沛铁路运输组织分析、指标统计分析及定期的经营分析,适时进行专题分析,提高分析的针对性、时效性并及时沟通信息,指出不足,提出措施,解决问题。采用号码制定性、定量、定期地做好杂车运行作业各环节时间段分析,针对问题、制定措施、整改落实、效果验证、不断完善并建立长效机制,引入了良性循环,对货物运输组织及行车、调车工作具有直接的指导意义。
(6)坚持设备、设备施工与管理并重
更新改造设备是完成各项作业的物质基础,树立设备、设备施工与管理并重的理念,循序渐进,持续改进。全面实现了机车换型,提高了机车的牵引动力,缩短了机车整备时间,改善了工作环境及瞭望条件,降低了劳动强度,提高了工作效率及对异常天气的适应性,保证了全天候作业。安装机车三大件(机车信号、列车无线调度电话、列车运行监控记录装置),提高了列车运行安全保障系统水平。在自备车辆淘汰、新自备车采购的工作中以购置新车型提高车辆重载率、运行速度、安全性能为优先标准,催促已购置的100辆自备车的尽快交付,并加强自备车运用管理,缓解了煤炭市场疲软的大环境下抢运转港煤炭运输的紧张局面。注重运输生产设备的维护保养、更新换代及新引进设备的科技含量的提高。充分利用大型捣固机,加强对线路的综合维护;减少和撤并道口,改设立交和涵洞;通过更新和技术改造,建立安全、可靠、先进、自动化的双回路供电系统,确保列车运行安全。完善抢险应急预案,定期组织演练,根据发现的问题对预案进行修改完善。行车部门加强车机联控;工电部门加强巡检,确保线路、设备安全使用。
(7)加强铁路专用线管理
为加快铁路货车周转,降低运输成本,提高运输系统的工作效率,最大限度地保证煤炭外运,杂车到卸与装车发送,徐沛铁路利用与装卸车单位签订年度专用线安全运输协议的有利时机,分别联合各装卸车单位,就货车交接地点及办法、装卸车组织及作业时间、工作联系制度、运输生产安全措施等进行了协调,明确责、权、利,力求做到公平、公正、公开与合理并达成一致,在双方平等协商的基础上,合理分担货车占用费支出成本,理顺了工作关系,提高了工作效率,实现了互利共赢。
(8)协调外部关系、加强内部管理,做好内外结合
协调好与国铁的关系,力争与货运资源量相匹配的配空车,保证装车兑现率及接入、交出列车的顺畅;在货车占用时间上做到了依据规定平等协商,在签订年度《专用铁路运输协议补充条款》中明确费用清算,增因国铁因素致货车占用时间延长所占车辆时间等。协调好与公司运销调度、徐矿集团运销部门等大客户的关系,主动与其协商,共同商定优化取送车方案。协调好与各矿厂等装卸车单位的关系,使其配足装卸车人员,实现优化组合,平行作业,真正做到快装快卸,宁让人等车,不让车等人。加强交流协作、提高服务质量。把与各服务对象间建立长效的联系机制和信息交流通道作为一项重点工作来抓,及时准确交流储、装(卸)、运情况。充分重视班组长的作用,落实职工降本增效意识。调整岗位及人员,做到一职多能,如:将调车人员集中管理改为具体分配到各装卸车站并培训考核后兼职助理值班员、外勤货运员等,彻底杜绝了内部车等人现象的发生。正确处理提高货车周转率与增加运量的关系。一方面积极拓展货源,提高运量;另一方面提高效率及服务质量,加快货车周转,做好路车吨运量成本支出的压缩工作。
四、实施效果
1.可观的经济效益
2014年1月~2015年10月,实际节支为1000.94万元(月均节支成本45.50万元),为徐沛铁路保持盈利水平做出了突出贡献。
2.良好的社会效益
极大地提高了路车使用效率,加快了路车周转,为国铁运输能力的提高创造了积极条件。
3.提高了处运输生产效率
给徐沛铁路日常的运输生产组织带来了很大的便利,2014年总货运量完成1607.1万吨,创历史新纪录。
4.不可忽视的安全效益
为铁路处的安全运输生产奠定良好的基础,至2015年10月31日徐沛铁路实现无C类以上责任事故10845天,有力地提高了企业的形象和竞争力。
参考文献
[1]崔玉贞.徐沛铁路运输安全的实践与探索[J].铁道运输与经济,2008,30(3):39-41.
[2]崔玉贞.地方铁路压缩货车周转时间的实践[J].铁道货运,2008,(8):10-12.
摘 要:铁路危险货物运输不同于其他运输业务,这是因为危险货物具有爆炸、腐蚀和放射性,一旦危险货物运输事故发生,将造成巨大的经济损失。因此,有必要探讨铁路危险货物运输的对策,以减少危险货物运输事故的发生。本文在分析我国铁路危险货物运输安全管理存在问题的基础之上,提出了完善铁路危险货物运输安全管理的对策。
关键词:危险货物;铁路运输;安全管理
危险货物是指具有爆炸、燃烧、腐蚀、放射性等危害的货物,在铁路货物运输过程中,危险货物的运输难度和运输要求都比较高。原因在于,铁路危险货物的运输不仅会影响运输企业的经济效益,还有可能造成严重的社会危害。因此,加强安全管理是铁路货物运输的重中之重。
一、我国铁路危险货物运输安全管理存在问题
(一)从业人员综合素质有待提高
铁路危险货物运输从业人员的素质对运输安全管理有着至关重要的影响,当前部分业务人员的综合素质仍然有待提高。这部分从业人员对铁路危险货运相关法律法规不够了解,对业务知识的熟练程度也不高,在个人利益的诱惑下,甚至还有部分人员会进行违章操作,使得超重、超高的现象时有发生。部分押运人员由于 文化 水平不高,对危险化学物品的分类、危害等了解不足,当出现紧急情况时不能及时采取有效的处理措施,导致危险货物运输事故频发。相当一部分托运人为了尽快将自身的危险物品运出,会谎报托运物品的品名、特性、危险性等,还会隐瞒危险物品的浓度、含量等,或者将危险物品的名字换成非危险物品的名字。受理站在检查托运人的货物时,存在疏忽,给危险货物运输带来了极大的安全隐患。
(二)危险货物运输设备技术不过关
由于运输货物的特殊性,铁路危险货物运输对运输设备的技术要求较高,目的是为了降低爆炸、燃烧、毒害、腐蚀、放射性等危险事故的发生。从当前我国铁路危险货物运输的设备现状来看,虽然许多运输车辆并不存在较大技术问题,但是车辆总体状况并不理想,车辆检修、维护的次数较少。铁路运输企业为了降低运输成本,对车辆的检修不够重视。当铁路危险货物运输车辆的罐体存在裂痕,阀、盖、仪表等配套设备状态不佳时,很容易导致危险货物的泄漏,甚至会引发火灾、爆炸等事故,严重妨碍铁路运输的正常开展。最近几年以来,全国铁路危险货物运输发生的事故多是因为运输车辆罐体有虚焊的现象、车辆压力表和安全弹簧存在异常情况。
(三)铁路危险货物运输安全管理漏洞大
安全管理是否严格关系到铁路危险货物运输的安全程度,当前铁路危险货物运输安全管理存在较大漏洞,违章作业、包装不良是最主要的两个问题。违章作业包括受理危险货物时未能进行严格检查,货物的运输量、装车高度不符合国家规定,货物运输单的填写不够规范。此外,货物的装卸程序未能严格执行,也导致了许多危险事故的发生。在危险货物包装方面,部分危险货物的包装存在严重的质量问题。一些危险物品只有经过严格的包装之后才能进行铁路运输,然而许多托运人为了降低运输成本,会使用质量较次的包装材料,有的货运人实际采用的包装材料与送检的包装材料完全不同。此外,少数车站对危险货物的包装检查不够严格,纵容了上述现象的一再发生,对危险货物的安全运输构成了较大威胁。
(四)危险事故救援效率不高
当危险事故发生时,及时、有效的救援能够将事故损失降到最低,目前铁路危险事故救援仍然存在不及时、针对性差的问题。首先,铁路运输相关部门缺乏专业的危险事故救援人才,导致事故发生时施救者对事故原因不明确,对危险物品的特性、救援方法等不了解,不当的救援反而使得事故更加严重。其次,铁路运输部门所制定的事故救援方案不够合理,当事故发生时不能有效组织救援,延误了救援的最佳时机。
二、我国铁路危险货物运输安全管理解决对策
(一)加强业务人员培训
我国对铁路危险货物运输有明确的规定,对危险货物托运人、承运人的资格有严格的资质要求,对危险货物运输的管理人员、押送、装卸人员等都有明确的培训要求。然而,许多培训人员参加培训的目的仅仅是为了拿证上岗,并不具备真正的安全意识,业务知识也不够数量。因此,培训机构应该严格要求每一名培训学院,不仅要注重理论知识的学习,而且要注重实践技能的考核,更要注重安全意识的培养。只有这样,培训的效果才能发挥。
(二)严格装车监控
在危险货物装车之前,需要严格检查车辆各项指标是否正常。在运输危险化学物品时,必须落实专车专用制度,车辆实际运输货物必须和车辆外部标识一致。在危险货物装车之间,需要检查货物的包装是否完好,装车时不能超过规定装载量。对于货物的质量要加强审查,并且要求托运人提供货物的磅码单,以便核实货物的实际重量。更为重要的是,需要对运输车辆进行周密的检查,对于重点阀门、盖子要重点检查,出现任何异常情况都应该及时向上级汇报。
(三)完善应急预案
最后,必须完善铁路危险货物运输应急预案。预计预案应该包括应急预案的组织人员、实施人员、危险事故应急程序、不同类型事故处理方法、应急信息的发布等内容,在制定应急预案的基础之上,应该注重应急救援人员的培训,而且还要开展危险事故演习,提高业务人员的安全意识,增强应急救援人员的救援能力。
三、 总结
总之,铁路危险货物的运输需要严格落实安全管理 规章制度 ,并且要从根源上杜绝危险事故发生的可能性。在受理危险货物运输业务时,需要规范受理流程,杜绝违章作业。在危险货物包装、装卸方面,也要严格执行安全管理标准,加强监督力度,最大限度减少危险因素的出现。最后,还需要制定完善的应急预案,降低运输事故造成的负面影响。
参考文献:
[1]温克学.关于铁路危险货物运输安全管理创新的探索与思考[J].铁道货运,2015(3):1-6.
[2]张锦惠.铁路危险货物运输安全管理的问题及对策分析[J].物流技术,2012(8):157-158.
[3]姬晓明,袁永君.加强铁路危险货物运输安全管理的对策[J].铁道货运,2012(11):1-4.
[4]海涛.我国铁路危险货物运输安全管理及防护对策[J].中国安全科学学报,2013(8):25-27.
[5]余淼.铁路危险货物运输安全风险管理探讨[J].铁道货运,2012(10):34-37.
plc及其有关设备,都应按照易于与工业控制形成一个整体,易于扩充其功能的原则来设计。下面是我为大家精心推荐的plc毕业设计论文,希望能够对您有所帮助。
浅谈PLC的应用
【摘 要】可编程控制器是一种数字运算操作的电子系统,专为在工业环境下应用而设计的。可编程控制器采用可编程序的存储器,用来在其内部执行逻辑运算、顺序控制、定时、计数和算术运算等操作指令,并通过数字式、模拟式的输入或输出,控制各类型的机械或生产过程。可编程控制器在工业自动化控制特别是顺序控制中的地位,在可预见的将来,是无法取代的。
【关键词】可编程控制器;模拟量
可编程控制器是可编程序控制器(Programmable Controller)的简称,通常缩写为PC。但它不是个人计算机的PC(Personal Computer)。也不仅是(但包括)早期的可编程逻辑控制器PLC(Programmable Logic Controller)、可编程顺序控制器PSC(Programmable Sequenec Controller)及可编程矩阵控制器PMC(Programmable Matrix Controller)。
可编程控制器及其有关设备,都应按照易于与工业控制形成一个整体,易于扩充其功能的原则来设计。目前 ,PLC在国内外已广泛应用于钢铁、石油、化工、电力、建材、机械制造、汽车、轻纺、 交通 运输、环保及文化娱乐等各个行业,使用情况主要分为如下几类:
1.开关量逻辑控制
取代传统的继电器电路,实现逻辑控制、顺序控制,既可用于单台设备的控制,也可用于多机群控及自动化流水线。如注塑机、印刷机、订书机械、组合机床、磨床、包装生产线、电镀流水线等。
2.工业过程控制
在工业生产过程当中,存在一些如温度、压力、流量、液位和速度等连续变化的量(即模拟量),PLC采用相应的A/D和D/A转换模块及各种各样的控制算法程序来处理模拟量,完成闭环控制。PID调节是一般闭环控制系统中用得较多的一种调节 方法 。过程控制在冶金、化工、热处理、锅炉控制等场合有非常广泛的应用。
3.运动控制
可编程控制器可以用于圆周运动或直线运动的控制。一般使用专用的运动控制模块,如可驱动步进电机或伺服电机的单轴或多轴位置控制模块,广泛用于各种机械、机床、机器人、电梯等场合。
4.数据处理
可编程控制器具有数学运算(含矩阵运算、函数运算、逻辑运算)、数据传送、数据转换、排序、查表、位操作等功能,可以完成数据的采集、分析及处理。数据处理一般用于如造纸、冶金、食品工业中的一些大型控制系统。
5.通信及联网
可编程控制器通信含可编程控制器间的通信及可编程控制器与其它智能设备间的通信。随着工厂自动化网络的发展,现在的PLC都具有通信接口,通信非常方便。
可编程控制器是一种用于工业生产自动化控制的设备,一般不需要采取什么措施,就可以直接在工业环境中使用。然而,尽管有如上所述的可靠性较高,抗干扰能力较强,但当生产环境过于恶劣,电磁干扰特别强烈,或安装使用不当,就可能造成程序错误或运算错误,从而产生误输入并引起误输出,这将会造成设备的失控和误动作,从而不能保证可编程控制器的正常运行,要提高可编程控制器控制系统可靠性,一方面要求可编程控制器生产厂家提高设备的抗干扰能力;另一方面,要求设计、安装和使用维护中引起高度重视,多方配合才能完善解决问题,有效地增强系统的抗干扰性能。
当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。随着大规模集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现代科技发展的主流方向。本文介绍了一个智能交通灯系统的设计。该智能交通灯控制系统可以实现的功能有:对某市区的四个主要交通路口进行监控;各路口有固定的工作周期,并且在道路拥挤时中控中心能改变其周期;对路口违章的机动车能够即时拍照,并提取车牌号。在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。本文主要从单片机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。
随着城市和经济的发展,交通信号灯发挥的作用越来越大,正因为有了交通信号灯,才使车流、人流有了规范,同时,减少了交通事故发生的概率。然而,交通信号灯不合理使用或设置,也会影响交通的顺畅。
交通信号灯由红灯、绿灯、黄灯组成。红灯表示禁止通行,绿灯表示准许通行,黄灯表示警示。交通信号灯分为机动车信号灯、非机动车信号灯、人行横道信号灯、车道信号灯、方向指示信号灯、闪光警告信号灯、道路与铁路平面交叉道口信号灯。交通信号灯用于道路平面交叉路口,通过对车辆、行人发出行进或停止的指令,使各同时到达的人、车交通流尽可能减少相互干扰,从而提高路口的通行能力,保障路口畅通和安全。
十字路口交通信号灯现场示意图如图1所示,南北和东西每个方向各有红、绿、黄三种信号灯,为确保交通安全,要求如下。
1)采用PLC构成十字路口的南北向和东西向交通信号灯的电气控制。系统上电后,交通指挥信号控制系统由由一个3位转换开关SA1控制。SA1手柄指向左45°时,接点SA1-1接通,交通指挥系统开始按常规正常控制功能工作,按照如图2所示工作时序周而复始,循环往复工作。SA1手柄指向中间0°时,接点SA1-2接通,交通指挥系统南北向绿灯常亮,东西向红灯常亮,。SA1手柄指向右45°时,接点SA1-3接通,交通指挥系统东西向绿灯常亮,南北向红灯常亮。
2)正常控制时
①当东西方向允许通行(绿灯)时,南北方向应禁止通行(红灯);同样,当南北方向允许通行(绿灯)时,东西方向应禁止通行(红灯)。②在绿灯信号要切换为红灯信号之前,为提醒司机提前减速并刹车,应有明显的提示信号:绿灯闪烁同时黄灯亮。③信号灯控制系统启动后应能自动循环动作。
信号灯动作的时序图如图2所示,它是按信号灯置1与置0两种状态绘制的,置1表示信号灯点亮。
3)输入/输出信号分配
随着微处理器、网络通信、人―机界面技术的迅速发展,工业自动化技术日新月异,各种产品竞争激烈,新产品不断涌现。PLC也由最初的只能处理开关量而发展到可以处理模拟量和数据,加之与DCS、pid调节器、工业pc等技术相结合,使之不再是一种简单的控制设备,而且必将随着自动控制技术的不断发展而发展生存下去。可编程控制器在工业自动化控制特别是顺序控制中的地位,在可预见的将来,是无法取代的。
PLC工程应用分析
摘要:文章针对PLC工程应用开发过程中的使用特点,研究了PLC硬件组成、软件结构,分析了PLC控制使用的工作过程,最后探讨了PLC编程语言语句,对PLC在控制系统的应用有一定指导意义。
关键词:PLC工程;硬件系统;软件系统;编程语言语句;控制系统 文献标识码:A
中图分类号:TP27 文章编号:1009-2374(2015)34-0033-03 DOI:10.13535/j.cnki.11-4406/n.2015.34.017
可编程序控制器(Programmable Logical Controller,PLC)是一种新型的工业自动化装置,PLC的核心是微处理器,由自动化、通信、计算机技术三者融合而成。PLC的特征是具有简单灵活的可编程性、能够抵抗恶劣工作环境的高抗压能力以及适应性能强。PLC凭借体积小、价格便宜、重量轻等优势,广泛应用于工业控制上,在热电厂自动化工程的应用也日益广泛。
1 PLC的结构研究
不同型号可编程逻辑控制器的结构及组成基本原理相同,研究可编程控制原理应该从硬件结构与软件开发入手。
1.1 PLC的硬件组成部分
PLC的硬件系统组成部分包括CPU板、输入和输出电路、存储器扩展接口等。
1.1.1 CPU板:PLC的核心系统就是CPU板,CPU板中包含中央处理器、只读存储器、随机存储器、并行接口及串行接口等等组成部件。CPU板在PLC的作用是运算和控制程序,对不同的逻辑运算、算术运算以及系统整体的部件起到管理、控制的作用。随机存储器和只读存储器配备在PLC程序内部,具有存储各种系统程序的作用。并行接口和串行接口实现中央处理器与每一个接口电路之间的信息交换。
1.1.2 输入/输出电路:输入电路包括直流输入和交流输入两种电路。输入电路能够对现场输入设备所提示的控制信号程序进行接收,接收后光电耦合器可将控制信号隔离进行程序编码,从而转换为PLC程序中的标准使用的信号格式,再经过CPU实现信号读入,从而传输至存储器内。
输出电路在PLC中,主要作用是实现输出信号,在PLC系统中的控制信号输出时,输出电路负责将控制信号传送至其他外部输出设备中,实现输出电路的工作。输出电路的形式分为三种:(1)继电器形式的输出电路,该形式的输出电路对继电器的线圈进行控制,使继电器的触点发生通断,从而达到电气隔离的目的;(2)晶体管输出型电路,该电路运用光电耦合器达到电路开关晶体管出现通断的目的,以此来对输出设备进行控制;(3)可控硅输出型,以可控硅为媒介对输出设备进行控制,当触发可控硅,即可出现电路通断。
1.1.3 存储器扩展接口:是只读存储器与随机存储器所运用的扩展卡盒。扩展卡盒常用的类型有三种:(1)COMS ROM,COMS可由主板上的锂电池提供备用电量,该卡盒的优点在于停电或断电故障下确保数据及程序不会丢失;(2)可擦除可编程ROM卡盒,该卡盒在写入时需要运用专门的编程器,才能将调试好的ROM内的资料进行写入,在擦写时,透过紫外线照射可见内部芯片,从而擦除其内的数据,且在写入时,需具备一定的编程电压,可以重复进行擦除和编程;(3)EEPROM卡盒,电可擦可编程只读存储器,是一种断电情况下也不会出现数据丢失,实施编程与擦除操作时运用专用编程器即可实现。
1.1.4 输入/输出扩展接口:CPU与输入、输出扩展接口之间通过总线连接法进行连接,它对所有的扩展单元均可连接,从而让信号点数规模具备更强的灵活性。输入/输出扩展接口也可与模拟量、高速脉冲等其他适配器进行连接,从而扩展、增强PLC的作用。
1.1.5 编程器及其接口:编程器在PLC中的作用是对数据和信息的输入进行调试、编辑以及检测输入数据的安全性。正常运行状态下的PLC不需要编程器进行编程数据,所以编程器作为PLC部件中独立设计的存在。PLC上通常设有一个编程器专用接口,该接口适应于连接不同类型的编程器,以便完成对PLC程序的写入及调试。
1.2 对可编程控制的研究分析
一个控制系统如要实现自身的控制功能,必须借助相应的控制程序才能得以实现。控制程序分为以下两种类型:
1.2.1 固定布线程序控制。在旧模式下的继电器中,如果要对各种程序进行控制,继电器的电路连接需为布线形式,输入设备的作用是将控制信号送入控制系统,如按钮开关、传感器等。输出设备的作用是将被控制者的动作进行控制。该设备对输出的控制信号的控制方式是由连线来完成的。接线完成后,控制程序也随之确定,如需要重新对控制程序改动时,需要将原先控制程序的整个连线重新布线连接,制定新的连接方式。在复杂的控制系统中,该类型的程序控制难度较大,编程可行性不高。
1.2.2 可编程序控制。可编程序控制对系统进行控制时,只需运用专用编程器,通过相应的程序语言实现编程,将控制程序下装至存储器中,最后借助可编程序控制器对编程实施各项操作。如要改动可编程系统,只需将程序存储器中的程序语言进行相应改动,通过编程器即可完成,无需改动电路连接重新布线。通俗地说就是使用特定的软件程序语言编写程序代码实现被控对象的各种动作控制。
2 PLC工程的工作原理
PLC的核心电子部件是微处理器,也可视为由继电器、定时器、状态器等的综合组成部件。PLC中,输入继电器通过外部开关进行驱动,输出继电器则安装有许多触点。PLC开展工作,其实就是执行程序。PLC在工作状态下,CPU以分时操作为工作原理,在一个周期内执行相应的操作,即CPU的程序扫描。CPU在对程序进行运算处理时速度很快,因此从宏观角度看其数据结果可发现CPU的程序运算似乎是在极短时间内完成。PLC对程序的执行过程分为以下三个部分:
2.1 输入处理 PLC在执行程序过程中,运用重复扫描来完成。执行前,CPU将所有的输入信号以地址中出现的编码顺序为标准编程至输入存储器中,随后开始开展程序执行。在CPU执行程序时,即使输入状态发生了变化,但输入寄存器中的数据内容不会随着输入状态的变化而发生变化,直至扫描周期结束CPU才对输入状态进行重新读取。
2.2 程序执行
PLC在执行程序时,依据顺序对用户程序进行扫描。完成一条程序的执行后,所需信息将经过寄存器由程序读出,并参与程序运算,接着再将程序执行的数据结果编程到相关的寄存器中。
2.3 输出处理
当PLC将所有指令全部执行结束后,PLC会把所有程序结果输入到输出锁存寄存器中,最终传送至程序执行终端。
3 PLC的软件系统组成部分
一个完整的PLC控制系统由硬件系统和软件组成,两者结合构成复杂的控制功能。在PLC软件系统中,分为系统程序和用户程序。
系统程序在PLC中的作用是管理、服务和翻译用户程序,可将其视为一个软件平台。系统程序的质量与PLC的性能具有直接联系,系统程序质量好,则PLC的性能强,反之性能弱。系统软件是固定存在于程序中的,无法自行修改或存取。用户程序即应用程序,是用户根据控制系统的要求运用程序语言进行编制的应用,其存放于系统程序指定的存储位置。
4 PLC的编程语言
运用面向顺序和面向过程对程序进行控制的“自然语言”,即为PLC的编程语言,PLC的编程语言有很多,如梯形图、逻辑方程式、语名表或布尔代数式等语言种类。下面对常用的PLC编程语言进行介绍。
PLC的基本指令(如三菱FX2系列为例)如下所示:
4.1 逻辑联取及输出(LD/LDI/OUT)指令
LD/LDI指令用于取常开触点/常闭触点于母线相连。另外,在分支开始处,这些指令与后述的ANB(块与)指令组合使用;OUT指令用于驱动输出继电器,辅助继电器、状态器、定时器及计数器的线圈,但不能用来驱动输入继电器的线圈。对于定时器、计数器的线圈,在输出指令(OUT)后必须设定适当的常数。
4.2 触点串联指令
AND(与),ANI(非)指令,AND为常开触点串联连接,ANI即常闭触点串联连接,AND与ANI均可用于对触电进行串联连接,同时运算于逻辑。对串联触点并不限制其个数,是可以重复使用的程序指令。
4.3 触点并联指令
OR(或),ORI(或非)指令,OR常开触点并联连接,ORI常闭触点并联连接,两者可对触点进行并联连接或使用于逻辑运算。对并联触点的设置并不限制其个数,是可以重复使用的程序指令。当两个以上触点的串联电路块进行并联连接时,应使用后述的ORB(块或)指令。
4.4 串联电路块的并联指令(ORB)块
串联电路块是指将两个以上的触点电路进行串联连接,一般情况下,一个串联电路块就是一条线路分支。在对串联电路块实施并联连接的形式时,各分支的始端用LD或LDI指令,在分支的终点用ORB指令。在多重并联电路中,若每个串联电路块的终点分别使用ORB指令,则并联的串联电路块的数量不受限制。ORB指令与后述的ANB指令一样都是无操作元件号的独立指令。
4.5 并联电路块的串联指令
ANB(块与)并联电路块的串联连接两个以上的触点并联接的电路称为并联电路块,通常每一个并联电路块称为一条分支。在进行并联电路块的串联连接时,各分支的始端用LD或LDI指令,并联电路块结束后,使用ANB指令,实现与前面的电路串联。
ANB指令与前述的ORB指令一样,都是无操作元件号的独立指令。若多个并联电路块依次与前一电路串联,则ANB指令的使用数量不受限制。
4.6 主控触点指令
MC(主控),MCR(主控复位),MC主控电路块起点,MCR主控电路块终点。
在编程过程中,经常会遇到几个逻辑行同时受一个触点或一组触点的控制,受到一个公共条件的控制,叫做主控,这时就可以使用MC/MCR指令进行编辑。当主控条件满足时,执行MC和MCR之间的指令。执行MC指令后,使母线移至MC主控触点之后,执行MCR指令后,母线又返回到原来的位置上。MC和MCR指令必须配对使用。
4.7 置位和复位指令
SET(置位),RST(复位),SET令元件自保持ON,令元件自保持OFF,清除数据寄存器。当执行SET指令时,将对应的操作元件(Y,M,S)置位,并具有自保持功能。当执行RST指令时,将对应的操作元件(Y,M,S)置位,并具有自保功能。使用RST指令还可以数据寄存器D、变址寄存器V和Z清零。
4.8 END(程序结束)指令
END输入输出处理程序回到第“0”步。
5 结语
在使用PLC系统设计时,要求输入点数很多。尤其对于需要进行多个位置、多点控制的热电厂系统,对输入点数要求较为突出。所以,能够有效地减少系统的输入点,有效地降低PLC的成本。在进行PLC控制系统的设计时,要求运用以下的技巧和要点:(1)在设计时,根据软件的控制功能不同进行相应设计,如果是梯形图,则设计方式应采用模块化形式;(2)在使用循环扫描时,应保持指令与指令、模块与模块之间的时序关系不变,使程序在设计功能基础上正常运行;(3)对于自动关门、换速、自动切换时间等需要进行调节的参数项目,使其与程序分离。因此,在需要进行调整参数时,无需将程序进行改动,方便快捷、便于调试,同时能够使软件的可靠性有效提高;(4)对于串联开关、联动开关,比如层门之间的连锁开关、轿顶和轿厢之间,可将其设置为一个输入点;(5)对于具备相同作用的开关信号,如安全触板的开关以及大门开关,可将其采用并联的形式输入PLC内;(6)采用组合式按钮输入法,应用该方法时应使用两个输入点数,把按钮键进行组合,再由程序自动对组合信号进行识别和复原;(7)进行编码的输入:运用二进制编码,在按钮开关中输入识别信号,再自动转接到PLC程序进行复原、识别,可以非常有效地减少PLC输入点数。
参考文献
[1] 朱善君,等.可编程序控制系统原理、应用、维护[M].北京:清华大学出版社,1992.
[2] 王兆义.可编成控制器教程[M].北京:机械工业出版社,2000.
作者简介:王琼(1980-),男,浙江嵊州人,上虞杭协热电有限公司热控工程师,研究方向:电厂自动化控制系统管理与维护、硬件的日常维护及软件编程。
汽车租赁系统的c语言,数据结构的语言程序
【问题描述】
汽车租赁公司拥有若干种不同类别的汽车,允许持有相应类别驾照的顾客租赁汽车,按照租赁的汽车类型和租赁的时间进行收费,租赁最长时间不能超过一周;若延迟归还,则按延迟的时间进行罚金处理。
其中,汽车信息包括:汽车编号、类别、收费标准、库存数量、延迟归还罚金标准;(汽车类别分为A、B、C三类,收费标准每天分别为:400、300、200元,延迟归还的罚金标准分别为:每天600、500、400元。)
顾客租赁信息包括:顾客编号、顾客名、驾照类别(A、B、C三类)、租赁的汽车编号、租赁天数、延迟归还的天数)。
主要用到的知识点有:结构体、线性表、函数
【基本要求】 设计一个汽车租赁管理系统,能够完成以下功能:
查询并显示汽车信息、顾客的租赁信息
顾客租赁汽车:首先检查顾客驾照类别,然后查询相应类别的汽车数量,若可租赁,则添加顾客信息、同时修改汽车库存量。
顾客归还汽车:首先检查归还日期并计算费用,然后删除该顾客的租赁信息表、修改汽车库存量。
系统以菜单的方式工作:运行界面可选择要执行的操作是查询?租赁还是归还?
【测试数据】由读者自行设定
编译器是VC6
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MaxNum 20
typedef struct A{
int No; /*车辆编号*/
char Type; /*车类型*/
int Payment;/*租费*/
int fine; /*罚金*/
struct A *next;/*指向下一个结点*/
} car;
typedef struct B{
int No; /*顾客编号*/
char Name[20]; /*顾客姓名*/
char License; /*执照类别*/
int carNo; /*租凭的车辆编号*/
int Day; /*租的天数*/
int DelayDay;/*延迟的天数*/
struct B *next;
} client;
struct C{/*这个结构体是车辆链表的头结点,A,B,C每种类型有一种*/
char Type;/*车辆型号*/
int avl; /*可用数*/
car *head;/*指向车辆结点*/
} headNode[3]={{'A',MaxNum,NULL},{'B',MaxNum,NULL},{'C',MaxNum,NULL}} ;
client *allClien=NULL;
int pay[3]={400,300,200},fine[3]={600,500,400};
void init();/*初始化*/
int menu();/*简单菜单界面*/
void search();/*查询*/
void carSc(); /*查询车辆*/
void clientSc();/*查询顾客*/
void rent(); /*租车*/
void giveback();/*还车*/
void addCli(client *cli);/*向顾客链表增加顾客*/
client* delCli(int clientNo);/*从顾客链表删除一个顾客*/
void addCar();/*向车辆链表归还车辆*/
car* delCar();/*从车辆链表拿出一辆车*/
void Exit();/*退出*/
void main()
{
init();
while(1)
{
switch(menu())
{
case 1:search();break;
case 2:rent();break;
case 3:giveback();break;
case 4:Exit();
default:;
}
}
}
void init()
{
int i;
car *ptr,*pa=headNode[0].head,*pb=headNode[1].head,*pc=headNode[2].head;
for(i=1;i<=MaxNum;i++)
{
ptr=(car *)malloc(sizeof(car));
ptr->No=100+i;
ptr->Type='A';
ptr->Payment=400;
ptr->fine=600;
pa=ptr;
pa=ptr->next;
ptr=ptr=(car *)malloc(sizeof(car));
ptr->No=200+i;
ptr->Type='B';
ptr->Payment=300;
ptr->fine=500;
pb=ptr;
pb=ptr->next;
ptr=(car *)malloc(sizeof(car));
ptr->No=300+i;
ptr->Type='C';
ptr->Payment=200;
ptr->fine=400;
pc=ptr;
pc=ptr->next;
}
pa=NULL;pb=NULL;pc=NULL;
}
int menu()
{
int choice;
printf("\n\n\n选择服务:1.查询 2.租车 3.归还 4.退出\n");
scanf("%d",&choice);
while(choice!=1&&choice!=2&&choice!=3&&choice!=4)
{
printf("\n输入有误,重新输入:");
scanf("%d",&choice);
}
return choice;
}
void search()
{
int choice;
printf("\n你想查询:1.汽车 2.顾客 3.返回 \n");
scanf("%d",&choice);
while(choice!=1&&choice!=2&&choice!=3)
{
printf("\n输入有误,重新输入:");
scanf("%d",&choice);
}
switch(choice)
{
case 1:carSc(); break;
case 2:clientSc(); break;
case 3: ;
default:;
}
}
void carSc()
{
printf("\n\n所有汽车信息:\n");
printf("\nA类汽车还剩%d辆.\nB类汽车还剩%d辆.\nC类汽车还剩%d辆.",
headNode[0].avl,headNode[1].avl,headNode[2].avl);
}
void clientSc()
{
client *ptr=allClien;
printf("\n\n所有顾客信息:\n");
while(ptr!=NULL)
{ printf("\n\n顾客编号:%d",ptr->No);
printf("\n顾客姓名:%s",ptr->Name);
printf("\n驾照类型:%c",ptr->License);
printf("\n租赁车号:%d",ptr->carNo);
printf("\n租赁天数:%d",ptr->Day);
printf("\n延迟天数:%d",ptr->DelayDay);
ptr=ptr->next;
}
}
void addCli(client *cli)
{
if(allClien)
allClien=cli;
else
{
cli->next=allClien->next;
allClien=cli;
}
}
client* delCli(int clientNo)
{
client *ptr,*prePtr;;
ptr=allClien;
while(ptr!=NULL&&ptr->No!=clientNo)
{ prePtr=ptr;
ptr=ptr->next;
}
if(ptr!=NULL)
{
if(ptr==allClien)
{
allClien=NULL;
}
else
{
prePtr->next=ptr->next;
}
}
return ptr;
}
void rent()
{
char name[20],type,Yes_No;
int num,day,No;
car *carPtr;
client *cli;
printf("\n\n输入执照类型(A/B/C):");
scanf("%c",&type);
while(type!='A'&&type!='B'&&type!='C')
{
printf("输入有误,重新输入:");
scanf("%c",&type);
}
if(type=='A')
num=headNode[0].avl;
else if(type=='B')
num=headNode[1].avl;
else
num=headNode[2].avl;
printf("\n%c类汽车还剩%d辆,是否要租凭(Y/N):",type,num);
scanf("%c",&Yes_No);
while(Yes_No!='Y'&&Yes_No!='N'&&Yes_No!='y'&&Yes_No!='n')
{
printf("Y或N:");
scanf("%c",&Yes_No);
}
/*增加顾客*/
if(Yes_No=='Y'||Yes_No=='y')
{
printf("\n输入你的名字:");
scanf("%s",name);
printf("\n输入你的租赁天数:");
scanf("%d",&day);
}
No=rand()%60+200;
carPtr=delCar(type);
cli=(client *)malloc(sizeof(client));
cli->No=No;
strcpy(cli->Name,name);
cli->License=type;
cli->carNo=carPtr->No;
cli->Day=day;
cli->DelayDay=0;
cli->next=NULL;
addCli(cli);
/*移出一辆车*/
printf("\n你的顾客编号是:%d",No);
printf("\n你所租赁的汽车是%c类车,车号是:%d",type,carPtr->No);
printf("\n你的租赁天数是%d天.",day);
}
void giveback()
{
int No;
long int payment;
client *ptr;
printf("\n\n顾客编号:");
scanf("%d",&No);
if((ptr=delCli(No))==NULL)
printf("\n该顾客不存在,无法归还!");
else
{
switch(ptr->License)
{
case 1:payment=ptr->Day*400+ptr->DelayDay*600;break;
case 2:payment=ptr->Day*300+ptr->DelayDay*500;break;
case 3:payment=ptr->Day*200+ptr->DelayDay*400;break;
default:;
}
printf("\n\n顾客姓名:%s",ptr->Name);
printf("\n驾照类型:%c",ptr->License);
printf("\n租赁车号:%d",ptr->carNo);
printf("\n租赁天数:%d",ptr->Day);
printf("\n延迟天数:%d",ptr->DelayDay);
printf("\n\n所需费用:%ld",payment);
addCar(ptr->License,ptr->carNo);
free(ptr);
}
}
void addCar(char carType,int carNo)
{
car *ptr;
int index=carType-65;
ptr=headNode[index].head;
if(ptr==NULL)
{ptr=(car *)malloc(sizeof(car));
headNode[index].head=ptr;
}
else
{while(ptr->next)
ptr=ptr->next;
ptr->next=(car *)malloc(sizeof(car));
ptr=ptr->next;
}
ptr->No=carNo;
ptr->Type=carType;
ptr->Payment= pay[index];
ptr->fine=fine[index];
ptr->next=NULL;
}
car* delCar(char type)
{
car *rentcar;
switch(type)
{
case 'A':rentcar=headNode[0].head;
headNode[0].head=rentcar->next;
break;
case 'B':rentcar=headNode[1].head;
headNode[1].head=rentcar->next;
break;
case 'C':rentcar=headNode[2].head;
headNode[2].head=rentcar->next;
break;
default:;
}
return rentcar;
}
void Exit()
{
printf("\n欢迎使用.....888888888886666....");
exit(0);
}