全国服务热线 15221406036

西门子模块6ES7214-1BD23-0XB8正规授权

更新时间:2024-05-08 07:10:00
价格:请来电询价
联系电话:
联系手机: 15221406036
联系人:聂航
让卖家联系我
详细介绍

西门子模块6ES7214-1BD23-0XB8正规授权

可靠。
一、低压监控系统设计
(一)系统设计要求
依据用户的实际要求,智能低压开关柜不仅能在当地手动进行分、合,而且具有系统零位、时控和远方控制的功能,其控制回路的电气控制图如图1所示。图1中SV 为转换开关,当1、2通时,为当地时控方式;9、10通时为手动方式;5、6通时为远程控制。当开关柜工作在远方控制方式时,当PLC输出触点#107- #113闭合时,KM线圈加载得电,KM常开触点闭合,并形成回路使KM线圈始终得电,此时PLC输出触点#107-#113释放,当PLC输出触点 #105-115吸合时,KA线圈得电,KA常闭继电路断开,使KM线圈回路失电,KM常开触点断开,当KM线圈常开触点断开后,PLC#1052115 输出触点释放,开关维持断开状态。图中#901-#903作为PLC的输入触点。
(二)设计方案简述
本系统针对低压系统的实际要求设计,实现开关柜的远程控制。主站通过电力专用modem与远方子站RTU进行双向通讯,主站发出控制命令,子站接收主站控制命令并转发到PLC,并将PLC的执行结果及时反馈给主站,控制时间在1~2s完成。
监控系统分为三级:主站、变电站当地子站、PLC和仪表设备。主站借助GPS时钟jingque定时,操作员可将任何时候的停电和启动设置进主站,由主站自动发出控制命令,该监控系统极适合路灯及景观灯的控制。




图1 控制回路的电气控制原理图


二、通讯协议及处理方法
(一)主站与子站的通讯协议
主站采用电力系统远动循环规约与子站进行通信,但远动循环规约中仅有主站对子站的单点遥控命令,为此主站端必须对CDT规约进行扩展,我们借用遥信报文的格式,将主站端需要控制的低压开关状态,用遥信报文下发到子站,为此仅需将下发的遥信报文中的开关状态内容分析出来,分别放置在yk_road[0]、 yk_road[1]、yk_road[2]、yk_road[3]四个字节中,支持对32路低压断路器的控制。报文由同步字、控制字和信息字三部分组成,其格式如下:
同步字为6个字节:0dbh,09h,0dbh,09h,0dbh,09h;控制字为6个字节:控制字节、帧类别、帧长度、源站址、目的站址、CRC校验;信息字为帧长度×6个字节,本文因为控制点数在32个以内,所以信息字仅为6个字节:功能码、1到8组开关柜控制状态、9到16组开关柜控制状态、17到24组开关柜控制状态、备用开关柜控制状态、CRC校验。整个控制报文18个字节,这样既符合CDT规约的通信格式,又不增加RTU的通信报文分析负担。
在该规约处理中,关键为实时判断出同步字头,然后根据帧类别区别遥控选择命令、遥控执行命令、遥控辙消命令、系统对时和成组开关控制命令,分析出遥控数据存放在yk_road[0]~yk_road[3]中,并置相应标志,再由远动测量装置将命令进行分析转换发给
PLC。实现该规约的分析方法voidinterruptCntReach1()函数如下:
voidinterruptCntReach1()/*串口1每收到一个字节中 断一次的中断处理程序*/
{ cntreach[1]++; /*每接收一个字节,中断 接收计数器加1*/
stat=sio_read(p[1],data,1);/*从串口1缓冲区读入一 个字节数据放到data[0]中*/
if(ok[1]==0){/*如未判断到同步字节,以下分析同步 字头*/
switch(tp[1]){
case0:if(data[0]==0xd7)tp[1]++; break;
case1:if(data[0]==0x09)tp[1]++;
else tp[1]=0; break;
case2:if(data[0]==0xd7)tp[1]++;
else tp[1]=0; break;
case3:if(data[0]==0x09)tp[1]++;
else tp[1]=0; break;
case4:if(data[0]==0xd7)tp[1]++;
else tp[1]=0; break;
case5:if(data[0]==0x09)
{ ok[1]=1;cntreach[1]=0; }
else tp[1]=0; break;
default:break; } }
if((ok[1]==1)&&(cntreach[1]、=0))/*已判断到同步字头后,以下分析报文内容*/
{Rx_buf[1][cntreach[1]-1]=data[0];
if(cntreach[1]==3)LGn[1]=Rx_buf[1][2];
if(cntreach[1]>=(LGn[1]*6+6))
{step_flag[1]=1;/*置报文同步标志*/
CODE[1]=Rx_buf[1][1]; /*帧类别*/
switch(CODE[1]){
case0x61:…/*遥控选择命令处理*/
case0xc2:…/*遥控执行命令处理*/
case0xb3:…/*遥控辙消命令处理*/
case0x7a:…/*系统对时,*/
case0xf4:if(Rx_buf[1][6]==0xf0)/*分析出遥控数 据,并置相应标志*/
if(Rx_buf[1][2]==1)
{yk_road[0]=Rx_buf[1][7];
yk_road[1]=Rx_buf[1][8];
yk_road[2]=Rx_buf[1][9];
yk_road[3]=Rx_buf[1][10];
yk.road=1;yx1_state[0]=1;} break;
default:break;
}reset_point(1);/*复位各种标志的函数*/
} }sio_flush(p[1],0); }
(二)子站与松下PLC的通信协议
松下PLC通信协议MEWTOCOL2COM为厂家专门设计的协议,采用ASCII码的方式传送,用应答方式实现PC机与松下Fp1PLC之间的通信。由子站端RTU发出/命令信息0,FP1PLC响应,其基本格式如图2。



其命令代码Commandcode由2~3个ASCII字符组成,共26种,主要有:RCS为读一个触点数据;WCS为写一个触点数据;RCP为读多个触点数据;WCP为写多个触点数据;RS为读定时器和计数器的设定值;WS为写定时器和计数器的设定值;RCC为将多个触点数据以字方式读入;WCC为将多个触点数据以字方式写入;因此,通过对这26种命令组合分析,可以完全构成由远程对PLC进行控制,而PLC本身无需编写任何梯形图。通过分析测试,例如对 PLC下发ASCII数据串“%01#RCCX00000001**\xod”,共19个字节,其中X是输入数据类型,Y是输出数据类型,数据串末尾是回车符,必须用\xod代替,其中报文可以不计算BCH校验码,用**代替,该报文实现了以字方式读01号PLC中的输入从0000到0001数据,共32 路输入数据。PLC收到该报文后,立即回17个字节的数据串,前6个数据为/%01#RC0,后8个数据为2个字的输入点数据,每个字数据用4个字节,每个字符可表示4位输入点的状态,设计了Read_fp1_bbbbb()函数实现报文分析转换方法。
对PLC的输出控制用WCC命令实现,其基本数据串格式为“%01#WCCY000000030000000000000000**/xod”,该报文实现了以字方式置01号PLC中的输出点从0000到0003数据,控制数据内容为16个字节,每个字符可表示4位输出点的状态,共64路输出数据。因为每个低压开关柜需要“开”、“断”2 路输出控制,实际此命令只可控制32路开关。为了系统可靠,低压开关设计为脉冲控制型,为此必须用通信命令
来实现PLC输出触点的同时输出,延时一段后再对PLC进行求反输出控制。设计Write_fp1_output()函数实现了具体报文转换成输出数据下发给PLC的方法。
Read_fp1_bbbbb() /*读FP1PLC输入数据的 处理函数*/
{unsignedcharfp1_read[19]=/%01#RCCX00000001* *\x0d0;intn;
memcpy(SendBuffer,fp1_read,19);
receive_ok=0; termintrr=0;count=0;
sio_putb(p[6],SendBuffer,19);
while(count<wait_time)
{if(termintrr)
{if(Test_buf[6][3]==0x24)
{Test_buf[6][6]=Asc_to_Hex(Test_buf[6][6]);
Test_buf[6][7]=Asc_to_Hex(Test_buf[6][7]);
Test_buf[6][8]=Asc_to_Hex(Test_buf[6][8]);
Test_buf[6][9]=Asc_to_Hex(Test_buf[6][9]);
Test_buf[6][10]=Asc_to_Hex(Test_buf[6][10]);
Test_buf[6][11]=Asc_to_Hex(Test_buf[6][11]);
Test_buf[6][12]=Asc_to_Hex(Test_buf[6][12]);
Test_buf[6][13]=Asc_to_Hex(Test_buf[6][13]);
yx_road[0]=((Test_buf[6][6]&0x0f)*16+Test_buf [6][7]);
yx_road[1]=((Test_buf[6][8]&0x0f)*16+Test_buf [6][9]);
yx_road[2]=((Test_buf[6][10]&0x0f)*16+Test_ buf[6][11]);
yx_road[3]=((Test_buf[6][12]&0x0f)*16+Tes buf[6][13]);
step_flag[6]=1; count = wait_time+1;
} } }}
Asc_to_Hex(charx)/*ASCII码转换成十六进制数 */
{ if(x<=0x39)x=x&0x0f; else x=x-“A”+ return x;}
Hex_to_Asc(charx,inthigh)/*十六进制数的高、 转换成ASCII码*/
{if(high==1)x=((x&0xf0)>>4)&0x0f; else x&0x0f;
if(x>9)x=x+-A。-10; elsex=x+0x30;
return(x);}
Write_fp1_output()/*控制FP1PLC输出,并合成 冲的处理函数*/
{unsignedcharfp1_write[35]=/%01#WCCY0000 00000000000000**\x0d0;
intn;
memcpy(SendBuffer,fp1_write,35);
receive_ok=0; termintrr=0; count=0;
SendBuffer[16]=Hex_to_Asc(~yk_road[0],1);
SendBuffer[17]=Hex_to_Asc(~yk_road[0],0);
SendBuffer[18]=Hex_to_Asc(~yk_road[1],1);
SendBuffer[19]=Hex_to_Asc(~yk_road[1],0);
SendBuffer[20]=Hex_to_Asc(yk_road[2],0);
SendBuffer[21]=Hex_to_Asc(~yk_road[2],0);
SendBuffer[28]=Hex_to_Asc(yk_road[0],1);
SendBuffer[29]=Hex_to_Asc(yk_road[0],0);
SendBuffer[30]=Hex_to_Asc(yk_road[1],1);
SendBuffer[31]=Hex_to_Asc(yk_road[1],0);
sio_putb(p[6],SendBuffer,35);
while(count<wait_time)
{if(termintrr) count=count+1;}
count=0;
while(count

  

1 引言
在机床的控制中,经常遇到类似如工件的夹紧/放松,冷却液的启动/停止,顶针的前进/后退等等的操作。对于这类动作,操作者往往希望通过一个按钮来实现:按一下按钮,工件夹紧;再按一下按钮,工件放松;再按一下按钮,工件又夹紧;如此循环往复。把这样的按钮称为双稳态按钮,即有两种稳定状态:接通和断开,而且两种状态都能保持。在数控系统中,机床控制面板上一般会提供一些按键供用户自由定义,但按键的数量往往是非常有限的,所以对按键的分配不得不斟酌再三。如果在PLC程序中把按键做成双稳态的,一个按键身兼二职,就会使许多问题迎刃而解了。可见,PLC程序把按钮做成双稳态,还可以节省输入点的数量,这样在经济上也是很合算的。
2 构成双稳态按钮的三种方法
在PLC程序中构造双稳态按钮,有多种实现的方案,现在就介绍其中的三种方法。
2.1 通过SET和RESET指令来实现


图1 通过SET和RESET指令来实现双稳态按钮功能


图1程序中,当次按下按钮I0.0,此时条支路因串联的M0.1为常闭点,而使M0.0接通条件满足置位。第二条支路的执行条件不满足,暂且不去理会。再看第三条支路,假设持续按着按钮不释放,因支路中串联进I0.0的常闭点而使接通条件不满足,直到释放按钮I0.0,因串联的M0.0已经置位,从而使M0.1和Q0.0输出保持为“1”。当第二次按下按钮I0.0时,因为M0.0的状态为“1”,条支路执行条件不满足,第三条支路因I0.0的按下而使M0.1和Q0.0输出为“0”,M0.1由“1”变为“0”产生一个下降沿,使M0.0复位为“0”,从而使M0.1和Q0.0的“0”状态得以保持,即使释放按钮I0.0以后。之后对按钮I0.0的操作,又重复上述过程。可见,得到的是一个双稳态按钮。
2.2 利用PLC基本逻辑指令来实现
PLC程序是按照一定的PLC扫描周期循环往复地的执行程序代码。在每一个PLC扫描周期内,先读入输入映像区内的信号状态,然后执行用户程序,后刷新输出映像区的信号状态。用户程序的执行是按照代码的先后顺序自上往下依次执行的。


图2 利用PLC基本逻辑指令来实现双稳态按钮功能

图2程序中正是充分利用了PLC程序的执行的特点,现在分析一下它的工作过程。按一下按钮,使I0.1变为“1”,在个PLC扫描周期内,M0.0变为“1”,M0.1变为“1”,M0.1等于“1”会使M0.0变为“0”,但M0.0的状态变化要到下一个PLC扫描周期才会执行,可见M0.0是宽度为1个PLC扫描周期的脉冲信号。因为M0.0等于“1”,这样会使原来状态为“0”的Q0.0变为“1”。从第二个PLC扫描周期起,不论I0.1变为“0”或保持为“1”,M0.0变为“0”并稳定在“0”上,这样Q0.0通过M0.0常闭点与Q0.0常开点串联的支路保持为“1”状态。再按一下按钮,M0.0又产生宽度为1个PLC扫描周期的脉冲信号,这个脉冲信号使原来状态为“1”的Q0.0变为“0”并稳定在“0”上。如此每次按一下按钮,Q0.0就在“0”和“1”之间切换一次,形成双稳态信号。
这一段程序中使用的指令是所有PLC系统都支持的基本的指令,可以说在任何类型的PLC上都可以实现,非常具有代表性,值得借鉴。
2.3 借助于算术运算指令来实现
在数字电路中,如果把输出的“非”端反馈到D触发器的“D”输入端,则每来一个时钟脉冲,D触发器的状态就翻转一次。

图3 利用算术运算指令实现双稳态按钮功能

图3所示的程序借鉴了数字电路中的D触发器的工作原理,按钮I0.0每按下一次,就相当于给触发器的CP端输入一个触发脉冲,相加所得“和”的低位状态就翻转一次,如果Q0.0取自低位,就可得到周期性状态在“0”、“1”之间改变的双稳态信号。为了避免加法的计算结果溢出,判断如果累加到16位整数所能表示的大值32767,就重新开始累加。
3 结束语
文章开始提到的控制阀的两种状态,也可以选用具有保持功能的三位选择开关,这是一种硬件实现方案。当然可以选用本文所述的软件实现方案,殊途同归。但通过软件的方式,却节省了PLC输入点的开销,如果PLC的输入非常紧张,这是一种行之有效的方法,但若是输入点后还绰绰有余,这样做就有画蛇添足之嫌了。
硬件方案、软件方案,很难说究竟何者是佳方案。正如计算机的发展史,如果硬件非常昂贵,那就通过软件来实现这一功能;如果硬件的成本非常低了,何不充分发挥硬件的功能,这样还可以缩短一下程序代码。PLC输入点的问题正是如此,适合的才是佳的

  

1 引言
立体库是物流系统的集散地,它可以提高劳动生产率,降低劳动强度;节约库存占地面积,提高空间利用率;加速仓库储备资金的周转,保证均衡生产。堆垛机是立体库的关键设备,控制堆垛机的自动化控制装置应具有功能全、安全、可靠等特点。为此,本控制系统采用PLC作为控制核心,用变频器驱动堆垛机的电机。
2 立体库定位方式
自动化立体仓库由库房、货架、堆垛机,自动控制与信息传输装置,计算机和输送机等外围设备组成。库房由若干行货架组成,每行货架分隔成标准的存贮单元(托盘),每两行货架间留有巷道,巷道上有堆垛机。巷道端(原位)设有出入货物的货架(即放托盘的架)。巷道长度和货架高度根据存贮量需要及厂房尺寸而定。堆垛机在巷道上固定的天地轨间运行,两端都有限位开关和防越位撞头。

堆垛机自动存取时,必须确定要存或取的货物在货架上的位置,即定位。货物放在货架上的托盘里,一旦托盘所在层、列、行确定,则堆垛机在控制器控制下可自动对托盘进行操作。设层为Y坐标,列为X坐标,行为Z坐标,其立体库定位示意图见图1。


为正确确定X和Y值,堆垛机在运动过程中,采用无接触光电检测方式,对X和Y值不断检测, 一旦检测到X、Y值和PLC机内部设定值相同,说明 X和Y值确定了。Z值只有两种状态,不是右行就是左行,所以用一般开关就能设定Z值。X和Y的PLC内部值由拨码盘接口模块(E-01D)通过拨码开关设定。E-01D模块专为操作者外部设置PLC机内部的目标值,每块E-01D模块可同时输入四组拨盘开关,每组为四位标准BCD码。四组拨盘开关设置对应的计数器或定时器分配号分别为674、675、676、677,E-01D模块拨码接口使用见图2。本立体库PLC控制系统中,只用两组拨码开关,也就是说,只用674、675两个分配号。它们均工作在计数方式。674号被用来设置X值,675号由图2拨码盘设置Y值。

3 控制系统构成
(1) 系统工作原理
为了保障立体库的正常工作,立体库PLC控制系统设计成自动和手动两种方式,当自动出现故障时,手动可继续工作。本系统工作在自动方式时,堆垛机的三个自由度由三种不同电机驱动(列电机、层电机、叉电机)。为了提高效率,同时能够做到堆垛机正确动作,层电机和列电机由变频器驱动。当堆垛机运行到层或列的目标前一单元,驱动层电机的变频器或驱动列电机的变频器开始降速,一旦检测到目标位光电信号,则驱动层电机的变频器或驱动列电机的变频器在PLC的控制下正确停车。根据Z值,堆垛机的货叉左出或右出。至于存或取时的微落或微抬,由于贮存单元(托盘)规格一样,故只要知道存还是取,控制系统自动进行微落或微抬。当堆垛机的货叉在目标位工作完后,堆垛机自动返回原位,完成整个存或取过程结束。系统框图见图3。考虑到该立体库为冷库,到了冬天,控制系统环境不能满足PLC控制器要求,为此增设了加热控制装置,确保PLC控制器可靠。

(2) 软件编程流程图
由于堆垛机自动存、取货过程是一个比较复杂的控制过程,所以相应PLC控制器编程也比较复杂,首先,存货和取货过程正好是相反操作,编程时充分注意逻辑互锁关系。其次,为了提高存(取)货的效率,堆垛机层或列运行的速度控制非常关键,编程时必须注意层或列运行过程中的快慢切换点。再者,编程要合理,减少程序量,缩短扫描时间。现示出立体库PLC控制系统的程序流程图,如图4所示。

4 结束语
(1) 立体库采用PLC控制系统后,堆垛机在变频器驱动下高效运行,稳定可靠,存取货物动作正确,节省人力物力。
(2) PLC控制器通过扩展通讯接口,和管理机进行联网,立体库实现微机管理。
(3) 随着信息科学、自动化技术、机器人不断发展,立体库作为物流系统的集散地,今后,立体库应该向智能化、信息化等方向发展


联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com