新闻中心

EEPW首页>嵌入式系统>设计应用> 上位机与PLC的通信与监控设计

上位机与PLC的通信与监控设计

作者: 时间:2011-10-06 来源:网络 收藏

  //程序初始化:

procedure TForm1.Init_(nPort:integer);

begin

if MSComm.PortOpen then

MSComm.PortOpen:=False;

MSComm.Commport:=nPort;

//端口选择

MSComm.Settings:='9600,e,7,1';

//1位起始位,7位数据位,偶效验,2位停止位,9600bps

MSComm.PortOpen:=True;//打开串口

end;

//FCS校验

function FCS(s:string):variant;

var


i,len,tmpVar:integer;

DataCheck:byte;

f1,f2:byte;

begin

f1:=0;

f2:=0;

DataCheck:=0;

len:=length(s);

tmpVar:=0;

for i:=1 to len do

begin

DataCheck:=ord(DataCheck) xor ord(s[i]);

end;

f1:=DataCheck and $0f;

f2:=DataCheck and $f0;

f2:=f2 shr 4;

result:=inttostr(f2)+inttostr(f1);

end;

// 调用MSComm控件实现

procedure TForm1.HandShake_;

var

tmpByte1,tmpByte2:char;

tmpVar:string;

s:string;

begin

Init_PLC(1);

nbs
p; s:=Edit1.text;

tmpVar:=s+inttostr(FCS(s))+'*'+chr(13);

MSComm.RThreshold:=0;

MSComm.Output:=tmpVar;

//向串口输出数据

sleep(1000);// 延时

tmpVar:=MSComm.Input;

//从串口读取数据

tmpByte1:=tmpVar[5];

tmpByte2:=tmpVar[6];

if tmpByte1=chr(48) tmpByte2:=chr(48);

//校验码等于00,PLC正常完成操作

then

begin

Showmessage('发送的数据正确');

else

Showmessage('发送的数据有问题');

//end;

end;

4.2 实现对PLC的

  编写程序建立了与PLC的连接.在PLC的任何工作方式下都可以通过”读”指令读取PLC的状态.从而对PLC进行监视.只有当PLC的工作方式为监视的情况下才可以通过对PLC进行控制.所以在需要上位机实施控制的系统里面PLC都必须设置为监视工作方式.

  上位机只需要设置PLC的相应工作位就可以实现对PLC的控制.下图为PLC上位机控制过程。图a表示PLC 正常工作时输出由输入0.00控制,当需要把PLC的控制转由上位机控制时,只需要通过向PLC输入@00RR00030001,置3.00为ON,切断0.00的通路,这样输出10.00就转由4.00控制,当输入@00WR00040001时,4.00为ON,输出位10.00产生输出。

(a) PLC正常工作

(b)上位机控制

                            图6 PLC的上位机控制

5结束语

  本文探讨了实现PLC的上位链接系统通信的方法,以及要实现上位机对下PLC控制的PLC编程。通过上位机对PLC的监视与控制,可用方便的实现工厂生产过程的自动化

参考文献

  [1] 弭洪涛,毕国忠等.PLC应用技术.北京:中国电力出版社2004

  [2] 宋伯生.PLC编程理论 算法及技巧. 北京:机械工业出版社2006


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭