库存产品代理
SKKH253/18E
发布时间:2017-01-08 17:56:07 产品编号:GY-5-119240151  分享
价格:未填
品牌:SKKH253/18E
发货:3天内
信息标签:SKKH253/18E,库存,代理,库存产品代理

点击这里进行电话呼叫
点击这里QQ咨询
联系时一定要说在【贸易商务资源网】看到的将给您优惠!如果您也想和该公司一样在网站发信息有好排名,点击立即免费注册,发布产品推广

SKKH253/18E  PLC接收到读写命令,校验后正确,返回的数据格式为 E5H
西门康模块代理
程先生 139 188 64473 qq:937926739

3、确认读写命令的数据格式为:

SD SA DA FC FCS ED
其中SD为起始符,为10HSKKH253/18E
SA为数据源地址
DA为目的地址
FC为功能码,取5CH
FCS为SA+DA+FC的和的末字节
ED为结束符,取16HSKKH253/18E
PPI协议的软件编制

在采用上位机与PLC通讯时,上位机采用VB编程,计算机采用PPI电缆或普通的485串口卡与PLC的编程口连接,通讯系统采用主从结构,上位机遵循PPI协议格式,发出读写申请,PLC返回相应的数据。程序实现如下:

1、串口初始化程序:SKKH253/18E
MSComm1.CommPort = 1
MSComm1.Settings = "9600,e,8,1"
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.InputMode = comInputModeBinary
PPI协议定义串口为以二进制形式收发数据,这样报文的通讯效率比ASCII码高。

2、串口读取数据程序,以读取VB1SKKH253/18E00数据单元为例:
Dim Str_Read(0 To 32) ‘定义发送的数据为字节为元素的数组。
Str_ Read (32) = &H16 ‘相应的数组元素赋值,按照以下格式:
Str_ Read (29) = (100*8) \ 256 ‘地址为指针值,先取高位地址指针
Str_ Read (30) = (100*8) Mod 256 ‘取低位地址指针
Str_ Read (24) = 1 ‘读取的数据长度(Byte的个数)
For I=4 to 30SKKH253/18E
Temp_FCS = Temp_FCS + Str_Read(i)
Next I
Str_Read(31)= Temp_FCS Mod 256 ‘计算FCS校验码,其它数组元素赋值省略。
68 1B 1B 68 2 0 6C 32 1 0 0 0 0 0 E 0 0 4 1 12 A 10 2 0 1 0 1 84 0 3 20 8B 16
PLC返回数据 E5 后,确认读取命令,发送以下数据:
10 2 0 5C 5E 16
然后上位机VB程序接受到以下数据:
68 16 16 68 0 2 8 32 3 0 0 0 0 0 2 0 5 0 0 4 1 FF 4 0 8 22 78 16
首先识别目标地址和源地址,确认是这次申请的返回数据,然后经过校验检查,正确后解析出第26号数据(&H22)即为VB100字节的数据。

3、串口写入数据程序,以写VB100数据单元为例:
Dim Str_Write(0 To 37) ‘定义发送的数据为字节为元素的数组。
Str_Write (37) = &H16 ‘相应的数组元素赋值,按照以下格式
Str_Write (35) = &H10 ‘要写入的数据值
68 20 20 68 2 0 7C 32 1 0 0 0 0 0 E 0 5 5 1 12 A 10 2 0 1 0 1 84 0 3 20 0 4 0 8 C B9 16
PLC返回数据 E5 后,确认写入命令,发送以下数据:
10 2 0 5C 5E 16
然后上位机VB程序接受到以下数据:SKKH253/18E
68 12 12 68 0 2 8 32 3 0 0 0 0 0 2 0 1 0 0 5 1 FF 47 16
这是PLC正确接收并写入信息的返回数据。

4、串口接收程序:SKKH253/18E
在数据接收程序中,利用VB中MSComm控件,一次接收缓冲区中的全部数据,存放到数组形式的暂存单元中,然后分析每个元素的值,得到读写的数据。
Dim RCV_Array() As Byte
Dim Dis_Array As String
Dim RCV_Len As Long
RCV_Array = MSComm1.Input ‘取出串口接收缓冲器的数据。
RCV_Len = UBound(RCV_Array)SKKH253/18E
ReDim Temp(0 To UBound(RCV_Array))
For i = 0 To RCV_Len
Dis_Array = Dis_Array & Hex(RCV_Array (i)) & " "
Next i
Text1.Text = Dis_Array ‘接收到的数据送显示。
在程序的读写过程中,一次**可以读写222个字节,目前给出的数据读写为整数格式。

数据类型 Str_ Read(27)
S 04H SKKH253/18E
SM 05H
I 81H
Q 82H
M 83H
V 84H

以上程序,是以读写PLC的V变量区为例,利用PPI协议还可以读写S7-200PLC中的各种类型数据,包括I、Q、SM、M、V、T、C、S等数据类型,能够直接读出以上变量中的位、字节、字、双字等,其中读位变量时,是读取该位所在的字节值,然后上位机自动识别出该位的值。按照读写的数据类型,其中Str_ Read(27)的值各不同:

在控制系统中,PLC与上位计算机的通讯,采用SKKH253/18E了PPI通讯协议,上位机每0.5秒循环读写一次PLC。PLC编程时,将要读取的检测值、输出值等数据,存放在PLC的一个连续的变量区中,当上位机读取PLC的数据时,就可以一次读出这组连续的数据,减少数据的分次频繁读取。当修改设定值等数据时,进行写数据的通讯操作。
编程控制器PLC的应用绝大部分都是通过编写梯形图的方式实现程序控制的,但对于智能低压开关系统来讲,其分、断的控制往往要求由主控操作室远程控制来完成。按传统的方法,主控室要对某一个开关柜进行操作,须先发一个控制命令,PLC接收到该控制命令后,再由PLC程SKKH253/18E序执行该命令,该段程序必须用梯形图或逻辑指令编程,当开关柜数目巨大或要求多路设备同时控制时,PLC的程序编写就比较复杂,尤其是采用脉冲型输出控制而不是用电平保持型控制时更是如此。因为开关柜的分、合控制须两路继电器输出分别控制“分闸”和“合闸”,而不是由单路继电器保持输出控制,使继电器输出与开关柜分合一致。考虑这些因素,本文采用串行通讯实现PLC的控制,PLC本机无须任何梯形图或逻辑指令,这样不仅实现简单而且方便可靠。

一、低压监控系统设计SKKH253/18E

(一)系统设计要求

依据用户的实际要求,智能低压开关柜不仅能在当地手动进行分、合,而且具有系统零位、时控和远方控制的功能,其控制回路的电气控制图如图1所示。图1中SV 为转换开关,当1、2通时,为当地时控方式;9、10通时为手动方式;5、6通时为远程控制。当开关SKKH253/18E柜工作在远方控制方式时,当PLC输出触点#107- #113闭合时,KM线圈加载得电,KM常开触点闭合,并形成回路使KM线圈始终得电,此时PLC输出触点#107-#113释放,当PLC输出触点 #105-115吸合时,KA线圈得电,KA常闭继电路断开,使KM线圈回路失电,KM常开触点断开,当KM线圈常开触点断开后,PLC#1052115 输出触点释放,开关维持断开状态。图中#901-#903作为PLC的输入触点。

(二)设计方案简述SKKH253/18E

本系统针对低压系统的实际要求设计,实现开关柜的远程控制。主站通过电力专用modem与远方子站RTU进行双向通讯,主站发出控制命令,子站接收主站控制命令并转发到PLC,并将PLC的执行结果及时反馈给主站,控制时间在1~2s完成。

监控系统分为三级:主站、变电SKKH253/18E站当地子站、PLC和仪表设备。主站借助GPS时钟**定时,操作员可将任何时候的停电和启动设置进主站,由主站自动发出控制命令,该监控系统极适合路灯及景观灯的控制。

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

二、通讯协议及处理方法SKKH253/18E

(一)主站与子站的通讯协议

主站采用电力系统远动循环规约与子站进行通信,但远动循环规约中仅有主站对子站的单点遥控命令,为此主站端必须对CDT规约进行扩展,我们借用遥信报文的格式,将主站端需要控制的低压开关状态,用遥信报文下发到子站,为此仅需将下发的遥信报文中的开关状态内容分析出来,分别放置在yk_road[0]、 yk_road[1]、yk_road[2]、yk_road[3]四个字节中,支持对32路低压断路器的控制。报文由同步字、控制字和信息字三部分组成,其格式如下:

同步字为6个字节:0dbh,09h,0dbh,09hSKKH253/18E,0dbh,09h;控制字为6个字节:控制字节、帧类别、帧长度、源站址、目的站址、CRC校验;信息字为帧长度×6个字节,本文因为控制点数在32个以内,所以信息字仅为6个字节:功能码、1到8组开关柜控制状态、9到16组开关柜控制状态、17到24组开关柜控制状态、备用开关柜控制状态、CRC校验。整个控制报文18个字节,这样既符合CDT规约的通信格式,又不增加RTU的通信报文分析负担。

在该规约处理中,关键为实时判断出SKKH253/18E同步字头,然后根据帧类别区别遥控选择命令、遥控执行命令、遥控辙消命令、系统对时和成组开关控制命令,分析出遥控数据存放在yk_road[0]~yk_road[3]中,并置相应标志,再由远动测量装置将命令进行分析转换发给

PLC。实现该规约的分析方法voidinterruptCntReach1()函数如下:

voidinterruptCntReach1()

{ cntreach[1]++;

stat=sio_read(p[1],data,1);

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;SKKH253/18E

case4:if(data[0]==0xd7)tp[1]++;

else tp[1]=0; break;

case5:if(data[0]==0x09)

{ ok[1]=1;cntreach[1]=0; }SKKH253/18E

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]; SKKH253/18E

switch(CODE[1]){

case0x61:…SKKH253/18E

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);SKKH253/18E

} }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为将多个触点数据以字方SKKH253/18E式读入;WCC为将多个触点数据以字方式写入;因此,通过对这26种命令组合分析,可以完全构成由远程对PLC进行控制,而PLC本身无需编写任何梯形图。通过分析测试,例如对 PLC下发ASCII数据串“%01#RCCX00000001**\xod”,共19个字节,其中X是输入数据类型,Y是输出数据类型,数据串末尾是回车符,SKKH253/18E必须用\xod代替,其中报文可以不计算BCH校验码,用**代替,该报文实现了以字方式读01号PLC中的输入从0000到0001数据,共32 路输入数据。PLC收到该报文后,立即回17个字节的数据串,前6个数据为/%01#RC0,后8个数据为2个字的输入点数据,每个字数据用4个字节,每个字符可表示4位输入点的状态,设计了Read_fp1_input()函数实现报文分析转换方法。SKKH253/18E

对PLC的输出控制用WCC命令实现,其基本数据串格式为“%01#WCCY000000030000000000000000**/xod”,该报文实现了以字方式置01号PLC中的输出点从0000到0003数据,控制数据内容为16个字节,每个字符可表示4位输出点的状态,共64路输出数据。因为每个低压开关柜需要“开”、“断”2 路输出控制,实际此命令只SKKH253/18E可控制32路开关。为了系统可靠,低压开关设计为脉冲控制型,为此必须用通信命令

来实现PLC输出触点的同时输出,延时一段后再对PLC进行求反输出控制。设计Write_fp1_output()函数实现了具体报文转换成输出数据下发给PLC的方法。

Read_fp1_input()

{unsignedcharfp1_read[19]=/%01#RCCX00000001* *\x0d0;intn;

memcpy(SendBuffer,fp1_read,19)SKKH253/18E;

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[6SKKH253/18E][8]);

Test_buf[6][9]=Asc_to_Hex(Test_buf[6][9]);

Test_buf[6][10]=Asc_to_Hex(Test_buf[6][10]);SKKH253/18E

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;SKKH253/18E

} } }}

Asc_to_Hex(charx)

{ if(x<=0x39)x=x&0x0f; else x=x-“A”+ return x;}

Hex_to_Asc(charx,inthigh)

{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()

{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<36){if(count>30)

{memcpy(SendBuffer,fp1_write,35);

receive_ok=0; termintrr=0;

sio_putb(p[6],SendBuffer,35);

count=40;

}}sleep(1);SKKH253/18E

Read_fp1_input();SKKH253/18E

yx_duiwei();

Send_yx();}

联系方式
公司:上海曦龙电气设备有限公司销售部
状态:离线 发送信件
姓名:程先生(先生)
电话:021-51877382
手机:13918864473
传真:021-51877382
地区:上海-奉贤区
地址:上海奉贤南奉公路149号
QQ:937926739
阿里旺旺:ddccbb
商铺:http://m.ceoie.com/ddccbb/
去上海曦龙电气设备有限公司销售部怎么走?上图中的红点是上海曦龙电气设备有限公司销售部在奉贤区的具体位置标注,操作左上角地图工具可以放大缩小哦。
相关信息
[库存产品代理] 推荐供应
最新发布信息
点击分享到微信、朋友圈、QQ...
字母索引:  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z

首页 | 公司 | 求购 | 供应 | 商城 | 招商 | 展会 | 行情 | 品牌 | 产品

联系我们 | 刷新 | 返回顶部

©2004-2024  贸易商务资源网(ceoie.com)  版权所有