全国服务热线: 15221406036
企业新闻

6ES7216-2AD23-0XB8方法说明

发布时间:2023-12-01        浏览次数:0        返回列表
前言:西门子代理商,西门子模块代理商,西门子一级代理商,西门子PLC代理,西门子中国代理商
6ES7216-2AD23-0XB8方法说明
6ES7216-2AD23-0XB8方法说明1  引言      近年来,随着大规模集成电路的发展,可编程控制器得到了迅速的发展,并广泛应用于各种领域中。由于可编程控制器具有自身的通讯端口和通信协议,这就使得工业现场的实时监控和控制成为可能。所以在实际的运用中,常常采用plc作为下位控制机实现整个过程的自动控制。而微机在数据处理及人机界面方面有得天独厚的优势,因此采用微机为上位机来进行数据的显示、控制参数的修改及过程的控制,这样就不得不解决上位管理机与下位控制机之间的通讯问题。      由于串行通讯具有线路简单、应用灵活、可靠性高等优点,并且普通微机上均都带有串口,便于实现,所以微机与plc之间常采用串行异步通讯。vc具有面向对象的设计方法、简单方便的串行通讯和实用性强等优点,无需借用其他语言就可以开发出的控制系统通讯软件。本文重点就是介绍在bbbbbbs98环境下如何利用vc来实现pc机与永宏plc之间的串行通讯。并以实际控制系统“半自动化灯检机”为例加以说明。 2  控制系统简介      半自动化灯检机系统的主要工艺流程:供瓶机供瓶→进瓶输送带送瓶→气缸放瓶→主传动履带式置瓶棍移送瓶→进入高速旋转工位旋瓶→进入低速旋转工位慢速旋瓶(同时也就进入灯检工位)→至出瓶输送带送瓶→进入剔除工位分瓶(由电磁阀来控制气缸动作)。下位机主要采用永宏plc完成现场的状态检测与控制。上位机则用一般的微机,通过rs-232与plc通信接受现场状态的显示并加以控制生产过程。电机的运转通过plc控制,而电机的升降速则由变频器调节。因此本系统软件需要完成的主要任务是:从plc,变频器循环接受现场的状态,并根据不同的状态控制变频器及电机的运转。主要的界面有:监控画面,密码设置,参数设置和报警画面等。其中监控画面设有:操作按钮,如停止,启动及产品合格数的实时显示。画面中的每一个按钮或状态显示都需要上位机与下位机的通信来完成。3  永宏plc的通讯格式      整个通讯采用上位机主动发送和接收的方式,plc内部不需要特定的梯形图编程来做下位机通讯程序。3.1 通讯格式      计算机与永宏fb系列plc通讯必须遵从fb-plc通讯协议。无论是上位机发出的命令信息格式还是下位机发出的回应信息格式均可分为6个资料位,如图1所示。 (1) 起始字元(stx):ascii码的起始字元stx对应的16进制数为02h。无论命令信息还是回应信息,它们的起始字元均为stx,接收方以此来判知传输资料的开始。(2) 从机站号:为两位16进制数。fb-plc的站号是什么,这个值就是多少。因为fb-plc的站号可以为1-255,所以这个值的范围为01h-ffh。(3) 命令号码:为两位16进制数。所谓命令号码是指上位机要求下位机所执行的动作类别,例如要求读取或写入单点状态、写入或读取暂存器资料、强制设定、运行、停止等等。在回应信息中,下位机会将从上位机接收到的命令号码原原本本的随同其它信息一同发送给上位机。(4) 本文资料:可为0(无本文资料)-500个ascii字元。在命令信息中,此信息用于指定命令所要运作或存取的对象及要写入的数值。如果通讯正确,那么在回应信息中此栏为0(30h)和从上位机接收到的本文资料;如果通讯异常,那么为错误码。(5) 校验码(checksum):校验码是将1-4各栏的所有ascii字元的16进制数值以“lrc(longitudinal redundancy check)”法计算出1个byte长度(两个16进制数值00-ffh)的校验码。当下位机接收到信息后,用同样的方法计算出接收信息的校验码,如果两个校验码相同,则说明传送正。(6) 结束字元(etx):ascii码的结束字元etx对应的16进制数为03h。无论命令信息还是回应信息,他们的结束字元均为etx,接收方以此来判知此次通讯已结束。3.2 通讯命令      永宏系列plc有多种命令字,常用的几种描述如附表所示。例如,上位机要读取plc内部继电器m1和m2的状态,则上位机发送的命令字符串格式为:      起始符(02h)+站号(01)+命令字(44)+个数(02)+起始地址(0001)+校验码(3b)+结束符相应下位机响应的字符串为:      起始符(02h)+站号(01)+命令字(44)+错误码(0)+m0,m1状态(10)+校验码(5c)+结束符若要对字元件进行写操作,那么命令码改为47。表明该指令要向plc内部寄存器写入数据,同时要给出写入的数据个数、开始寄存器和数据内容。      校验和在信息帧的尾部,用来判断传输的正确与否。当数据从信息源出发,由于信道总是有一定的噪声存在,在信号达到信宿之前会与噪声发生叠加,使接收端收到的二进制数位和发送端实际发送的二进制数位不一致,因而产生差错。进行差错检验的方法很多,常用的有奇偶校验码,水平垂直冗余校验lrc,目前广泛使用的是lrc校验码,它可以查出99%以上18位或更长的突出错误,因而在计算机与plc进行点对点的短程通讯时,采用这种校验方法出错的几率较小。plc接收到计算机发送的命令后,如果没有错误,plc会发出确认码“0”;若有错误,plc会发出错误代码“1”。  4 软件编程      软件编程采用微软的vc++6.0作为开发工具。系统主监控画面要求不断扫描下位机的信号的通断状态,以及读取plc的内部存取单元加以显示。此外手动按钮可以直接控制,由此主程序结构流程图如图2所示。       为了确保通信的成功,在pc机和永宏plc之间开始数据传送前,常采用握手通讯的方法,即pc机发送特征字符,下位机接收并回送同一特征字符,由pc机进行检测正确后开始数据传送,以保证串行通讯数据的可靠。此外在通讯过程中,常因某些原因不能保证每次通讯成功,遇到这种情况,不能简单地宣布通讯失败,本程序设置了通讯重复次数计数器,只有在规定次数后握手通讯仍未完成时,才宣布通讯失败,从而大大提高了通讯的成功率和系统的容错能力。另外,程序中应用定时器对通讯时间加以限制,以免发生死锁情况。定时器的打开和关闭由程序进行控制。握手通讯成功后,设置握手连接成功标志位,这样,pc机和永宏plc之间就可以开始数据传送。握手通讯程序如下:void cscommplcdlg::onscommstart() { m_mscomm.setcommport(1);     file://选择com1 m_mscomm.setportopen(true);  file://打开串口 m_mscomm.setsettings("9600,e,7,1"); file://波特率9600,偶校验,7个数据位,1个停止位  m_mscomm.setbbbbbmode(1); file://1:表示以二进制方式检取数据m_mscomm.setrthreshold(1);  file://参数1表示每 file://当收到一只字符时引发一个接收数据的oncomm事件 m_mscomm.setbbbbblen(0); file://设置当前接收区    file://数据长度为0 cbbbbbb sendstr="";//设置要发送的字符串 sendstr+=0x02; sendstr+="014eabcdefgb8"; sendstr+=0x03; m_mscomm.setoutput(colevariant(sendstr));file://发送数据 char sendcount=0; while(m_mscomm.getinbuffercount==0) { sendcount+=1;   if(sendcount<10)  m_mscomm.setoutput(colevariant(sendstr));  file://再次发送数据   else  afxmessagebox("communication fail!"); return; } variant data; char s; char *recstr=&s; short l=m_mscomm.getinbuffercount(); if(l>0) {   data=m_mscomm.getbbbbb();     recstr=(char *)(unsigned char *)data.parray->pvdata;     if(strcmp(sendstr,recstr)==0)          { bbbbsuccess=1;      file://设置连接成功标志  m_timer=settimer(1,1000,null);  file://开启定时器    } }}4.1 实时数据监控的实现      在本系统的主监控画面上,如图3所示。要求实时监控现实合格产品数。在下位机plc程序中,每当合格产品经过特定传动待时,光电开关便感应信号,plc对此信号计数,存放于一内存单元。上位机就要定时不断读取此单元内容显示。 程序代码如下:void cscommplcdlg::ontimer(uint nidevent) { cbbbbbb sendstr="";//设置要发送的字符串 sendstr+=0x02; sendstr+="014601r0001273"; sendstr+=0x03; m_mscomm.setoutput(colevariant(sendstr));//发送数据 sleep(50); variant data; char s; char *recstr=&s; short recdata=0;  short l=m_mscomm.getinbuffercount(); if(l>0) {    data=m_mscomm.getbbbbb();  recstr=(char *)(unsigned char *)data.parray->pvdata;  recstr[l]=`一、 项目简介 1.项目位于深圳沙井创业工业区,为捷达机械公司开发。客户主要从事设备改造及非标设备设计。 1.1数控三座标深孔钻床简介: 采用外排屑法(枪钻法)进行加工。适用于钢、铸铁、有色金属等材料的深孔加工。 工作台垂直升降、水平平移及钻杆进给均为为数控控制。可加工箱体、轴、及异型零件,加工零件范围极广。广泛应用在模具、汽车零件及矿山机械行业加工中。 2.项目简要工艺流程(如下图):3.动作说明 3.31每个工件都会有不确定的孔数,且每个孔的孔距都有不一样的情况。 3.32每次钻孔完后需要回到原点再进行下一次钻孔。 3.33每次放的工件数量会不一样二、 控制系统构成 1.可编程控制器部分 永宏 FBs-40MCT+FBs-CB5组成,完成整机开关量、位置控制、变频器通讯控制和过程控制并对机器状态进行监控。 2.人机交互界面: 采用海泰克触摸屏与永宏PLC通讯,完成加工过程、工艺参数的显示及设定。 3.执行部分: 采用日本SHINKO(神钢)伺服电机,实现钻杆刀具的无级进给及jingque定位。 4.通讯部分: 永宏 PLC 的PORT2 通讯端口和变频器的RS485 连接,以MODBUS 协议进行通讯,实现主轴的无级调速控制。 5. 硬件方框图如下:三、 控制系统完成功能 1.软件设计2.功能说明 2.1开机进入面板操作画面,选择手动操作,即可对相应项做手动操作。 2.2开机进入面板操作画面,选择全自动操作,在条件满足的条件下,再按下启动按钮即可实现自动运行。 2.3考虑到钻杆易断,且价格昂贵,数值输入时,必须要在停机状态且在手动状态下才可以输入,不可动态更改,且输入后要按确认键才可输入成功。 2.4在自动运行时,X轴必须要在原点处才可以启动,否则不动作。 3.定位功能及通讯说明 3.1回原点程序概述 永宏PLC采用命令表格式编辑的回原点专用指令(F140+F141指令),使用户一目了然。如下: 3.11程序说明:3.12命令表格说明: 图5.1-1(F140)指令 图5.1-2(F141)3.2 需要实现在各位置处速度可调。因为钻孔深度不同,其速度需要作相应调整,否则钻杆容易断掉。永宏PLC支持NC定位的便利指令,且均以命令表格形式编辑,所以定位程序显得直观,可读性强,大大减少编程、调试的工作量。如下图所示:3.3脉冲控制时序图:3.4通讯部分: 3.41通讯程序:3.42命令表格说明: 通过 RS485 硬件接口,由PLC 以ModBus 协议与变频器进行通讯,控制钻杆主轴实现无级调速。永宏PLC 在ModBUS 通讯方面有专用的便利指令FUN150.M_BUS,也是通过表格形式编辑,使得众多的参数一目了然,如下表即为读写变频器数据的通讯命令表格:4.修改后用永宏PLC控制的深孔钻床:四、 项目运行 由于控制精度高、性能稳定、抗干扰性好,机床投入使用后得到用户好评,目前已服役半年,尚未反映有不良状况。 五、 应用体会 在本例中体现了永宏PLC单机四轴的优势,200KHz的脉冲频率可充分实现在空刀位的快速进给,简单易用的定位指令和通讯便利指令较它牌更好,大大减少了程序开发周期,而且大大降低了客户系统成本
浔之漫智控技术-西门子PLC代理商
  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 手机:15221406036
  • 联系人:聂航
推荐产品
信息搜索
 
西门子新闻