• 西门子6ES7216-2AD23-0XB8代理直销
  • 西门子6ES7216-2AD23-0XB8代理直销
  • 西门子6ES7216-2AD23-0XB8代理直销

产品描述

产品规格模块式包装说明全新品牌西门值+ 包装说明 全新 - 产品规格子

西门子6ES7216-2AD23-0XB8代理直销

   ERP理论虽然来自于西方的发达国家,但在我国ERP的研究与应用已有20多年的历史,其中风霜雪雨,经过了一段不平常的日子。虽然人们对ERP还有各种不同的认识,产品成熟度有差异,但已开始逐渐走向成功应用。这期间培养了一批有经验的实施顾问,涌现了一批成熟的国产ERP软件。这些软件不但具有先进的ERP管理思想,也融入了适合国情的管理特点,这些将对推动我国企业信息化建设起到积极的作用。特别是国家十五计划中提出的“以信息化带动工业化,以工业化促进信息化”的发展道路,必将使我国的企业信息化建设在未来有一个大的发展。

2    ERP在中国的应用与发展

    1981年沈阳**机床厂从德国工程师协会引进了**套MRPII软件,开辟了中国企业应用MRPII软件的先河。北京机械工业自动化研究所于80年代初完成了“宁江机械厂MIS系统”的研究与开发,打响了国有MRPII软件应用的**。随后,MRPII/ERP在中国的研究与推广应用经历了20多年从起步、发展到成功应用的历程。

(1)   十年探索与研究
    这一阶段贯穿80年代,其主要特点是:国内一些较好的企业开始MRPII的引进、消化和应用,其应用范围局限在传统的机械制造业,由于受多种因素的制约,应用的效果不理想。作为MRPII在中国应用的**者,它们走过了一段坎坷而曲折的道路。此时部分国有软件公司开始MRPII的研究与开发,主要以项目的形式进行,走调研、分析、设计、开发、实施的道路,实施周期可谓漫长。


(2)   七年发展历程
    这一阶段从1990年至1996年, 其主要特征是MRPII/ERP在中国的应用取得了一定的成绩,典型的企业有成都飞机制造工业公司、广东科龙容声冰箱厂、山西经纬纺织机械厂。部分企业启动了国家“863数腃IMS重点工程,如北京**机床厂的管理信息系统实现了以生产管理为核心,集成了物资供应、计划、生产、财务等业务管理,可以根据市场变化调整计划、平衡能力,效率提高了很多倍。为此,北京**机床厂于1995年11月获得了美国制造工程师学会(SME)授予的“工业良好奖”。此时,具有自主版权的国产MRPII软件产品开发成功,并投入市场。

(3)   逐渐走向成功应用
    从1997年开始,ERP引入中国并成为主角至今。由于它可为企业提供全面的解决方案,集成所有资源并可进行流程优化、监控与协调,逐渐得到许多企业的青睐,特别近几年,ERP在诸多的企业获得成功应用。这时,人们对ERP的认识有了质的变化:
    ①  有更多的人开始从管理的角度认识和理解ERP,它是一种新的先进管理模式的引入,而不再是手工管理模式的翻版;
    ②  它是一个系统工程,涉及到各个部门的相互信任和协调一致,就像一个乐队在统一的指挥下,才能弹奏出美妙的音乐来;
    ③  信息化建设是企业适应未来发展、参与市场竞争的先决条件。
因此,具有超前意识的企业,使ERP的实施获得了成功。在我国的一个典型汽车制造企业实施的ERP系统中,不但解决了生产装配、能力动态平衡和生产调度;还通过电子采购系统,与固定配套供应商实现了物资的零库存供货、结算,降低了采购成本、减少了库存资金的占用;通过网上订单系统,实现了**的网上销售,提高了分销业务的管理水平和降低了销售成本;通过企业内部信息门户进行办公业务管理和信息集成。生产经营活动完全是在计算机系统的统一协调下进行,经营管理者可以利用这个系统随时了解业务数据,进行监控和辅助决策。

3   新一代ERP的发展特性

    ERP代表了先进企业管理模式与技术,随着计算机和网络技术的发展,为ERP提供了越来越灵活的具有强大功能的软硬件平台,使ERP系统在功能、性能上得到迅速提高。基于Internet、支持电子商务的新一代ERP的诞生和发展必将推动我国信息化建设的步伐。

(1)   基于ERP支撑的电子采购
    在网络化的信息时代,将打破企业与企业间的信息堡垒,同时也将改变企业大而全的生产组织格局,一种以核心企业为中心的供应链系统将逐渐形成,这种新的生产组织形式,势必要求供应商在核心企业统一的协调下,进行协同商务,每一个供应商都将是系统中的一员。这就要求新一代ERP能够支持异地的业务处理和协同运作。ERP系统中的物资需求(包括MRPII模式下的物资供应计划和JIT模式下看板卡),通过电子采购系统及时发布给配套供应商,使其提前作好准备并及时保供应;同时,供应商同样可以将供货的信息及时反馈给企业,较终实现物资供应的零库存。

(2)   基于动态工作流的过程管理
    传统ERP是一个面向功能的事务处理系统,偏重于数据的收集、挖掘、固定流程控制,它为业务提供了丰富的业务处理功能,但是每个业务处理都不是孤立的,它一定与其它部门、其它人、其它事务有关,这就构成了一个业务流程,传统ERP对这个业务流程缺乏有效的控制和管理。ERP产生了许多报表、文件被打印装订成册,按流程规定交给有关**审批,这样的工作方式把企业**放在了系统之外,使系统的实施效果大打折扣。即使是分别实施了工作流程管理和ERP系统,也同样存在集成性不理想的实际问题,过程管理和信息管理没有形成**地结合。新一代ERP将以工作流引擎为业务处理的核心机制,将过程管理与信息管理**地集成在一起。根据工作流的定义,ERP系统自动生成流程的申请、通过工作流自动分发、审核、较后数据返回到ERP系统,并保留整个过程管理的轨迹。


(3)   基于质量流程作业的主动质量控制
    质量管理贯穿于整个生产经营过程,从产品设计的质量控制,到物资采购、生产加工、产品装配、售后服务的整个业务过程的质量控制、反馈、原因分析、质量改进、效果评估等,它与企业的管理水平和生产成本有直接的关系。因此,不只单纯地支持质量检验的管理,同时,质量流程说明、质量作业书将伴随着业务在系统中用于指导生产和质量保,做到及时发现问题,解决问题,提高产品的整体质量。


(4)   集销售、售后服务、ERP于一体的营销管理
    传统的ERP侧重订单跟踪与执行,对于分销业务、分销资源、售后服务缺乏有效的管理。独立的客户关系管理CRM对于传统的商业企业发挥了作用,对于生产制造业企业,在CRM与ERP的集成上存在一定的不方便性和复杂性,整体效率的较大化没有充分发挥出来。新一代ERP将更加面向市场和顾客,将进一步实现销售、售后服务的一体化,使CRM的前台客户服务与ERP的后台处理过程集成,较大限度地提高系统的运行效率,提高顾客的满意度。
(5)   基于OA系统的经营决策分析
    OA系统是一个面向办公业务的集成平台,该平台可以将不同的业务数据有效的集成在一起,方便企业内外部信息的交流。ERP集中了企业广泛的数据,侧重于单项的统计分析,忽略了企业高层管理者对经营决策分析的需求,使高层管理者可以脱离ERP系统,仍使用传统方式进行信息的收集。新一代ERP应该加强数据仓库、数据挖掘、联机分析处理OLAP等功能的集成,并通过信息中心、报表中心统一地集成在OA系统中,为经营者提供方便的企业级宏观决策分析的工具集。人们应该认识到:ERP系统的众多使用者虽然是具体的业务人员,但较根本的使用者应该是企业经营决策者。

(6)   基于B/S结构的多层应用架构
    如果说企业经营与管理活动是一场话剧,技术就是不断变换的舞台。过去几十年科技迅速发展,计算机应用经历了主机时代?客户机/服务器?浏览器/服务器,发生的这些变化,都是在满足不同时期企业经营管理的需要。当前,企业经营管理的范围和业务在不断扩大,集成企业内部的、异地分支机构的业务数据,并逐渐形成数据的集中和统一管理是势在必行,C/S结构的ERP已不能适应这样的需求,基于B/S结构的多层应用架构是新一代ERP所必须支持的,这样的系统跨越了时间和地域的限制,实现了数据的集中管理,也降低了未来的维护成本。


(7)   基于开放性的应用集成平台
    ERP产品生命周期受两方面的因素影响:系统的可重构性和集成平台的开放性。一个企业始终在不断发展壮大,现有的硬件和支撑系统可以满足当前的需要,但不保证随着业务的需要而改变现有的硬件和支撑系统(例如:Unix/Oracle),那么如何较大限度地减少客户的投入成本呢?因此,新一代ERP必须考虑系统的开放性和集成性,不但要能够适应各种硬件和支撑环境,同时还应当具有跨越异构计算机系统平台的集成性,以及中间件、分布式体系结构、J2EE架构、XML集成接口等技术的应用。

4   正确认识各种学说、理论

    从20世纪90年代中期开始,各种信息化思潮涌入我国。从管理软件角度看:有MRP、MRPII、ERP、DRP、CRM、SCM、BI、KM等;从管理理论角度看:有精益生产、敏捷制造、柔制造、约束理论、供应链理论、流程重组、成本控制理论等。这些学说和软件,对于企业的管理者会感慨:“这个东西太好了”,但是没有任何一个讲授者告诉企业管理者,这个东西只是管理理论的一种或是一个片段,它带有极大的局限性。这就使企业管理者在思想上产生了许多误区,使企业陷入了一个极大的困境。针对这些理论,人们要正确全面的分析。作为信息化的工作者,必须根据企业的实际情况来分析和判断哪些可以借鉴,但不是听风就是雨,在别人的指挥棒下走不适合自己的路。ERP系统经过多年的应用得到不断的完善,软件提供的功能正在覆盖更多的业务范围,特别是基于B/S结构的新一代ERP,更可以将不同地域和时间的业务集成在一起,包括可结构化和非结构化的数据,业务信息与工作过程、电子商务等。

5    企业信息化的阶段应用

    企业信息化建设成功是多种因素构成的,它的失败原因也是多样化的,重要的一点是企业没有彻底、真正理解信息化的作用和过程。从信息化建设与企业经营管理角度,人们要明确信息化建设的不同阶段与应用。


(1)   以企业业务需求为导向的应用
    处在基础管理时期的企业,管理水平、人员素质、对信息化的认识和灵活地应用,还没有达到进行彻底地流程改造来适应信息化建设需要的阶段,在这时过多地进行流程改造会使企业经营者感到烦恼,因为他们还没有真正体会到信息化给企业带来的是什么,如何解决实际问题的,特别是一个具有协同商务的ERP系统是如何进行协同的。此时,企业信息化较好的选择是以企业业务需求为导向,理顺业务流程,转变传统手工管理的观念,在抓好基础管理工作的同时,实现数据的准确性、及时性、完整性、共享性、集成性的应用,使管理有一个提升。此时应达到整个ERP系统的协调运作,并体会计算机辅助管理与手工管理发生的根本变化。


(2)   以信息化战略支撑企业发展战略的应用
    信息化建设是在一个“认识、积累、提升”的过程中,逐渐得到完善和高水平的应用。随着企业信息化的深入应用,人们不单会认识到ERP系统确实给企业带来了效益,同时也悟出了解决问题的机理,这是一个质的飞跃。这时,了解企业的管理者在制定战略和如何去实现战略上,可以从被动的业务需求走向主动的信息化战略的制定与实施。在这时,战略实施过程所采用的方法、步骤与信息化战略是紧密相关的,信息化建设实施的成败将影响到业务战略的成功与失败。海尔的供应链和客户关系管理体系的计算机支撑系统的成功使企业的业务战略获得了成功。此时的工作重心是以现有的信息化建设为基础,调整相应的业务流程来适应企业业务战略的实现,这时的信息化战略已经是企业经营战略中重要的组成部分。


(3)   以计算机化企业为目标的全面应用
    詹姆斯·迈天在《生存之路》一书中,有过这样的描述:“现代的企业可以建立一个巨大的计算机网络与其他企业连接。它们能在世界范围进行虚拟运作,能够不断地、快速地适应变化的环境。它们可以变得像是一个生物**体,有一个发达的‘神经系统’延伸到每一个雇员的办公桌上。把这种人与计算机构成的**体称为计算机控制下的企业,简称为:计算机化企业。”计算机化企业具有以电子速度迅速做出反应、对企业事务的持续监控和调整、协作运算和监视、将不属于企业的人或设备与企业相连、企业的**化经营、知识的积累和运用、重塑自动化的生存经营方式、数据分析与数据挖掘、整体效率的较优化、生物化设计等特征。未来经济的发展要求人们必须在一个计算机系统上作所有的业务,离开了计算机系统,将无法开展业务。这是一个理想的系统,根据企业的性质,完成这样的应用非一日之功,也不无可及,关键的一点是谁认识到并开始付诸行动。

6   对自己的企业充满信心

    当前企业应用ERP存在几种心声:长期关注ERP下一步的走向;准备应用ERP心存疑虑;已经应用ERP消极抱怨;已经应用ERP积极探索。这几种心声反映了当前人们对ERP认识的心态,同时也说明了大部分企业对应用ERP信心不足。应用失败的企业有,应用成功的企业不在少数,应用效果明显的企业也不是那么难觅。


    ERP的基本思想、基本概念,它的处理逻辑是适合中国企业的。在当前电子商务火热的形式下,不要忽略了ERP的作用。一位企业总裁曾说过这样的话:“ERP是电子商务的基础,没有ERP做支撑的电子商务是不可能成功的。”因此,对于企业来说,在未来的发展中,必定要走信息化建设发展之路。ERP应用没什么可怕,各种成功与失败的教训都将给后来者以借鉴,大家要对自己充满信心,要勇敢地迈出第一步,一旦体会和理解了它的作用,它就像“”一样将不可停止。多线程技术在VC++串口通信程序中的应用研究

1 概述

在现代的各种实时监控系统和通信系统中,在bbbbbbs 9X/NT下利用VC++对RS-232串口编程是常用的手段。bbbbbbs 9X/NT是抢先式的多任务操作系统,程序对CPU的占用时间由系统决定。多任务指的是系统可以同时运行多个进程,每个进程又可以同时执行多个线程。进程是应用程序的运行实例,拥有自己的地址空间。每个进程拥有一个主线程, 同时还可以建立其他的线程。线程是操作系统分配CPU时间的基本实体,每个线程占用的CPU时间由系统分配,系统不停的在线程之间切换。进程中的线程共享进程的虚拟空间,可以访问进程的资源,处于并行执行状态,这就是多线程的基本概念。 

2 VC++对多线程的支持

使用MFC开发是较普遍的VC++编程方法。在VC++6.0下,MFC应用程序的线程由CWinThread对象表示。VC++把线程分为两种:用户界面线程和工作者线程。用户界面线程能够提供界面和用户交互,通常用于处理用户输入并相应各种事件和消息;而工作者线程主要用来处理程序的后台任务。

程序一般不需要直接创建CWinThread对象,通过调用AfxBeginThread()函数就会自动创建一个CWinThread对象,从而开始一个进程。创建上述的两种线程都利用这个函数。

线程的终止取决于下列事件之一:线程函数返回;线程调用ExitThread()退出;异常情况下用线程的句柄调用TerminateThread()退出;线程所属的进程被终止。
 
3 多线程在串口通信中的应用

3.1 串口通信对线程同步的要求

因为同一进程的所有线程共享进程的虚拟空间,而在bbbbbbs 9X/NT系统下线程是汇编级中断,所以有可能多个线程同时访问同一个对象。这些对象可能是全局变量,MFC的对象,MFC的API等。串口通信的几个特点决定了必须采用措施来同步线程的执行。

串口通信中,对于每个串口对象,只有一个缓冲区,发送和接收都要用到,必须建立起同步机制,使得在一个时候只能进行一种操作,否则通信就会出错。

进行串口通信处理的不同线程之间需要协调运行。如果一个线程必须等待另一个线程结束才能运行,则应该挂起该线程以减少对CPU资源的占用,通过另一进程完成后发出的信号(线程间通信)来。

VC++提供了同步对象来协调多线程的并行,常用的有以下几种:

CSemaphore:信号灯对象,允许一定数目的线程访问某个共享资源,常用来控制访问共享资源的线程数量。

Cmutex:互斥量对象,一个时刻至多只允许一个线程访问某资源,未被占用时处于有信号状态,可以实现对共享资源的互斥访问。

CEvent:事件对象,用于使一个线程通知其他线程某一事件的发生,所以也可以用来封锁对某一资源的访问,直到线程释放资源使其成为有信号状态。适用于某*程等待某事件发生才能执行的场合。

CCriticalSection:临界区对象,将一段代码置入临界区,只允许较多一个线程进入执行这段代码。一个临界区仅在创建它的进程中有效。

3.2 等待函数

Win32 API提供了能使线程阻塞其自身执行的等待函数,等待其监视的对象产生一定的信号才停止阻塞,继续线程的执行。其意义是通过暂时挂起线程减少对CPU资源的占用。在某些大型监控系统中,串口通信只是其中事务处理的一部分,所以必须考虑程序执行效率问题,当串口初始化完毕后,就使其处于等待通信事件的状态,减少消耗的CPU时间,提高程序运行效率。

常用的等待函数是WaitForSinglebbbbbb()和Waitbbbbultiplebbbbbbs(),前者可监测单个同步对象,后者可同时监测多个同步对象。

3.3 串口通信的重叠I/O方式

MFC对于串口作为文件设备处理,用CreateFile()打开串口,获得一个串口句柄。打开后SetCommState()进行端口配置,包括缓冲区设置,超时设置和数据格式等。成功后就可以调用函数ReadFile()和WriteFile()进行数据的读写,用WaitCommEvent()监视通信事件。CloseHandle()用于关闭串口。

在ReadFile()和WriteFile()读写串口时,可以采取同步执行方式,也可以采取重叠I/O方式。同步执行时,函数直到执行完毕才返回,因而同步执行的其他线程会被阻塞,效率下降;而在重叠方式下,调用的读写函数会立即返回,I/O操作在后台进行,这样线程就可以处理其他事务。这样,线程可以在同一串口句柄上实现读写操作,实现"重叠"。

使用重叠I/O方式时,线程要创建OVERLAPPED结构供读写函数使用,该结构较重要的成员是hEvent事件句柄。它将作为线程的同步对象使用,读写函数完成时hEvent处于有信号状态,表示可进行读写操作;读写函数未完成时,hEvent被置为无信号。

4 程序关键代码的实现

程序专门建立了一个串口通信类,下面给出关键成员函数的核心代码。

BOOL InitComm file://串口初始化,这里只给出关键步骤的代码,下同
{
HANDLE m_hComm;
COMMTIMEOUTS m_CommTimeouts;
m_hComm = CreateFile("COM1", file://在这里只使用串口1
GENERIC_READ | GENERIC_WRITE, file://打开类型为可读写
0, file://以独占模式打开串口
NULL, file://不设置安全属性
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, file://重叠I/O方式
0);
if (m_hComm == INVALID_HANDLE_VALUE) file://打开不成功
{return FALSE;}
m_CommTimeouts.ReadIntervalTimeout = 1000; 
file://进行超时设置,读者应根据自己的实际需要设置
m_CommTimeouts.ReadTotalTimeoutMultiplier = 500;
m_CommTimeouts.ReadTotalTimeoutConstant = 5000;
m_CommTimeouts.WriteTotalTimeoutMultiplier = 500;
m_CommTimeouts.WriteTotalTimeoutConstant = 5000;
if (!SetCommTimeouts(m_hComm, &m_CommTimeouts))
{CloseHandle(m_hComm);
return FALSE;}
PurgeComm(m_hComm, PURGE_RXbbbbb | PURGE_TXbbbbb | PURGE_RXABORT | PURGE_TXABORT); file://清缓冲
return TRUE;


以上是专门针对COM1的初始化,如果要利用同一函数对不同串口初始化,则要在初始化前先进入代码临界区,以保证在某一时刻只进行一个串口的初始化。

在串口初始化成功后,就可以建立监控线程处理串口通信事件。下面是该线程的关键代码。

UINT CommThread(LPVOID pbbbbb) file://用于监控串口的工作者线程
{
BOOL bResult = FALSE;
if (m_hComm) file://查看端口是否打开,这里m_hComm同上,作者在这里做了简化
PurgeComm(m_hComm, PURGE_RXbbbbb | PURGE_TXbbbbb | PURGE_RXABORT |    PURGE_TXABORT);
for (;;) file://只要线程运行,就处于监视端口行为的无限循环
{
bResult = WaitCommEvent(m_hComm, &Event, &m_ov); 
file://m_ov是OVERLAPPED类型的成员变量
if (!bResult)
{ file://进行出错处理}
else
{
Event = Waitbbbbultiplebbbbbbs(4, m_hEvent, FALSE, INFINITE);
file://无限等待设定的事件发生,数组m_hEvent根据需要定义了须响应的接收,发送,关闭端口事件和OVERLAPPED类型的hEvent事件
switch (Event)
{ file://读写事件的响应处理过程,在此略}
}
return 0;


这样监控主程序就可以使用AfxBeginThread()函数来产生CommThread串口监控线程。如果要实现对所有端口的同时监控,可以分别对端口建立监控线程。


http://zhangqueena.b2b168.com

产品推荐