企业资质

厦门仲鑫达自动化设备有限公司

普通会员7
|
企业等级:普通会员
经营模式:
所在地区:福建 厦门
联系卖家:
手机号码:
公司官网:www.zxdadsqc.com/
企业地址:
企业概况

仲鑫达自动化设备有限公司-全球正规通用自动化产品和配件供应商,原装自动化产品供应。我们以专业,快捷,多元化面向全球提供一流的自动化零部件服务,满足您所有需求。FeaturedProductLinesControlSystems(DCS,PLC/SPS,CNC)-PanelControllers-HM......

SA1509-24

产品编号:91312540                    更新时间:2018-08-22
价格: ¥99.00

厦门仲鑫达自动化设备有限公司

  • 主营业务:AB ABB 施耐德 西屋 本特利 GE 艾默生 英维斯 F...
  • 公司官网:www.zxdadsqc.com/
  • 公司地址:

联系人名片:

联系时务必告知是在"产品网"看到的

产品详情

 SA1509-24

 SA1509-24

 SA1509-24

【大量现货】【当天签合同】【付款当天】就【顺丰发货】
★厦门仲鑫达自动化设备有限公司 ★
★联系人:洪工 ★  
★Q Q :2851195468
★传真:0592-5165561(注洪工收)★
★邮箱:2851195468@***.com★

通讯协议 

计算机与PLC之间的通信是建立在以RS232标准为基础的异步双向通信上的,FX系列PLC有其特定的通信格式,整个通信系统采用上位机主动的通信方式,PLC内部不需要编写专门的通信程序,只要把数据存放在相应的数据寄存器中即可,每个数据寄存器都有相应的物理通信地址,通信时计算机直接对物理通信地址进行操作。通信过程中,传输字符和命令字以ASCⅡ码为准,常用的字符及其ASCⅡ码对应关系。 

计算机与PLC进行通讯时,计算机与PLC之间是以帧为单位进行信息交换的,其中控制字符ENQ、ACK、NAK,可以构成单字符帧发送和接受,其余的信息帧发送和接受时都是由字符STX、命令字、数据、字符ETX以及和校验5部分组成。 

校验和在信息帧的尾部用来判断传输的正确与否,和校验码的计算方法是将命令码到ETX之间的所有字符的ASCⅡ码(十六进制数)相加,取所得和的***低2位数,在后面的通信程序设计里面还会提到。进行差错检验的方法很多,常用的有奇偶校验码,水平垂直冗余校验LRC,目前广泛使用的是CRC校验码,它能查处99%以上18位或更长的突出错误,而在计算机与PLC点对点的短距离通讯时,出错的几率较小,因而采用校验和法,基本能满足要求。 

3.多线程技术及在VC++串口通信程序中的实现 

在Windows的一个进程内,包含一个或多个线程,每个线程共享所有的进程资源,包括打开的文件、信号标识及动态分配的内存等等。

一个进程内的所有线程使用同一个32位地址空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行和什么时候执行线程。线程有优先级别,优先权较低的线程必须等到优先权较高的线程执行完任务后再执行。在多处理器的机器上,调度程序可以把多个线程放到不同的处理器上运行,这样可以使处理器的任务平衡,也提高系统的运行效率。 
Windows内部的抢先调度程序在活动的线程之间分配CPU时间,Windows区分两种不同类型的线程,一种是用户界面线程(UserInterfaceThread),它包含消息循环或消息泵,用于处理接收到的消息;另一种是工作线程(WorkThread)它没有消息循环,用于执行后台任务、监视串口事件的线程即为工作线程。 

本系统采用MFC编程方法,MFC是把串口作为文件设备来处理的,它用CreateFile()打开串口,并获得一个串口句柄,用SetCommState()进行端口配置,包括缓冲区设置,超时设置和数据格式等。然后调用函数ReadFile()和WriteFile()进行数据的读写,用WaitForSingleObject()监视通信事件。在用ReadFile()和WriteFile()读写串口时,一般采用重叠方式。因为同步I/O方式是当程序执行完毕才返回,这样会阻塞其他线程,降低程序执行效率。而重叠方式能使调用的函数立即返回,I/O操作在后台进行,这样线程就可以处理其他事务,同时也实现了线程在同一串口句柄上实现读写操作。 

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

利用Windows的多线程技术,在辅助线程中监视串口,有数据到达时依靠事件驱动,读入数据并向主线程报告;并且,依靠重叠读写操作,让串口读写操作在后台运行。 

4.上位计算机通信程序设计 

以读取PLC输出线圈Y0为首的2个字节的数据为例,编写一个通信程序。查PLC软元件地址表可知,输出线圈Y0的首地址为00A0H,2个字节的数据即为Y0-Y7和Y10-Y17,根据返回的数据,就可以知道PLC此时的状态,以实现对PLC的监控。在每一次读操作之前,先要进行握手联络。对PLC发请求讯号ENQ,然后读PLC的响应讯号。如果读到的响应讯号为ACK,则表示PLC已准备就绪,等待接收通讯数据。 

BOOLCPlcComDlg::ReadFromPLC(char*Read_char,char*Read_address,intRead_bytes) 

{CSerialSerial;//用于串行通讯的类 

if(Serial.Open(1))//初始化串行通讯口COM1 

{ndData(&ENQ_request,1);//发送联络讯号 

Sleep(20);//等待20ms秒 

adData(&read_BUFFER,1);//读取PLC响应讯号 

if(read_BUFFER==ACK){ 

…… 

ndData(&STX_start,1);//向PLC发送“开始”标志代码 
ndData(&CMD0_read,1);//发送“读”命令代码 

datasum_check+=CMD0_read; 

for(i=0;i<4;i++){ 

ndData(&Read_address[i>,1);//发送起始元件地址的ASCⅡ代码 

…… 

ndData(&ETX_end,1);//发送结束标志代码 

Change_to_ASCII(senddatasum_CHECK,datasum_check);//将“和”转化成ASCⅡ代码 

Sleep(40);//等待PLC的反应 

…… 

adData(&Read_char[i>,1);//读Read_bytes个字节 

if(*readdatasum_CHECK==*readdatasum_check)//“和”效验 

{AfxMessageBox("数据读取成功!"); 

returnTRUE;} 

else{AfxMessageBox("校验错误!"); 

returnFALSE;}} 

} 

5.结束语 

本文作者创新点:笔者提出了一种基于多线程的PC机与PLC的通讯,该通讯程序采用VC比用VB具有更好的实时性;并采用MFC编程方法用重叠结构读写串口,使串口读写在后台进行。该通讯程序可靠、可移植性好。 

本通讯程序作为该系统的一个重要组成部分,经现场调试证明,既简单又实用,具有很好的实用价值。同时,该系统具有直观的人机界面和方便的操作方式,具有广阔的应用前景。 

参考文献: 

[1>MitsubishiElectricCorporation.可编程控制器通讯手册[Z>.1998. 

[2>王也仿可编程控制器应用技术[M>.北京:机械工业出版社,2004. 

[3>KRUGLINSKIProgrammingVisualC++6.0技术***[M>(修订版).北京:希望电子出版社,1999. 

[4>胡银彪用VC++6.0实时绘制发动机试车曲线微计算机信息2002年第18卷第十期69-70页

 

TARGET ROCK T300983-1 SOLENOID VALVE R05319 125VDC 73022-040

REPAIRED ALLEN BRADLEY 1771-OFE1 

CYBELEC S-NIN-202/B-07B 

BEKUM 4022-770-22021 PC 

RELIANCE ELECTRIC 57***11 RESOLVER INPUT MODULE 57411-2E

MATERIAL CONTROL INC. SRS-1AX 

SIEMENS SIMATIC 505-6208A 

ALLEN BRADLEY 500F-DOD930 SER. C SIZE 3 STARTER 

IRONMAN BMQ826-25-R-56 

GROVE GEAR BMQ226-3 

COMTROL 30035-9 16 PORT 

FANUC IC693BEM331K 

WATTS 909QTS REDUCED PRESSURE ZONE 

ALLEN BRADLEY CM103-FC0011BAEKCB 

UI*** 386-COPC COMMUNICATION 

INGERSOLL RAND 39251392 

CONTROL TECHNIQUES 142DSE300CSAH 

WENDON COMPANY W4-66-100 

SQUARE D 8030 CRM222 I/O 

BOSCH PACKAGING 219686 

UNIPOWER 001-1613-100 REV. D  MODEL JM5000

TB WOODS 10H COUPLING SLEEVE W/ 2 10S-2 

FANUC A16B-1010-033 CNC 

STEARNS 104816101BP BRAKE HORIZONTAL MOUNTING 115/230 VOLTS X40060

JABSCO 777-0003 PUMP 1'' 

BALDOR M7015 MOTOR 1HP, 208-230/460V, 1725RPM

GAI-TRONICS 751-001VC 

PORT I8C00-C24 TEMPERATURE 

GIDDINGS & LEWIS 502-02139-00 PC 

TECUMSEH RK157ET-002-S7 

GAMMA-METRICS 100022-001 PC BOARD PN100024C

JOHNSON CONTROLS P-5215-9 

GAMMA-METRICS 100019-123 LOG COUNTRATE BOARD 100021E

FANUC A16B-1211-0890-01 

SEALED ALLEN BRADLEY SP-135766 

CINCINNATI MILACRON 3-542-1022A 

WESTINGHOUSE KA3125 CIRCUIT BREAKER 600V, 3 POLE

HUBNER-BERLIN TDP-0.2LT-4 TACHOGENERATOR ASSY. WITH 0G-9-E-10 

BALDOR DODGE DBSC-10-23 MOTOR BRAKE 025632 0/460 VAC 

ALLEN BRADLEY 634623 PC 

ALLEN BRADLEY 900034-07-A01 

SPENCE 2020TD-NQK SERIES 2000 

GE FANUC A06B-6050-H005 

GF SIGNET 159-000-757 FLOW PVC WET TAP VALVE 3-3519

LINCOLN ELECTRIC L16871-3 

LINCOLN ELECTRIC L7253-1 

SEALED JOHNSON CONTROLS P-5217-7 

 

 

 

 

厦门仲鑫达自动化设备有限公司电话:传真:联系人:

地址:主营产品:AB ABB 施耐德 西屋 本特利 GE 艾默生 英维斯 F...

Copyright © 2024 版权所有: 产品网店铺主体:厦门仲鑫达自动化设备有限公司

免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。产品网对此不承担任何保证责任。