没有合适的资源?快使用搜索试试~ 我知道了~
首页西门子200PLC通信 ppi协议-delphi
西门子200PLC通信 ppi协议-delphi
5星 · 超过95%的资源 需积分: 11 31 下载量 16 浏览量
更新于2023-03-03
评论 1
收藏 154KB DOC 举报
1\上位机通过串口与西门子200通信,基于ppi协议,pc-ppi编程电缆<br> 2\主要基于v区进行通信,实际应用中足够了,故没有对其他区进行操作<br> 3\要点:<br> 1)一次读取v区多个字节,<br> 2)v区的位操作:置位和复位,在第1个文本框中输入v区地址,在第2个文本框中输入位地址,如程序默认的地址是 V0.0<br> 3)写一个字<br> 4\注意:<br> 实际应用中一次最多可以读取v区55个字节,否则会造成读取失败<br> 5\安装:<br> 附带MSCOMM32串口通信控件的安装程序。
资源详情
资源评论
资源推荐
西门子200PLC通信 ppi协议-delphi
作者邮箱:lkl_xz@163.com
qq:57476662
2008.06.25
*****************************说明**********************
1\上位机通过串口与西门子200通信,基于ppi协议,pc-ppi编程电缆
2\主要基于v区进行通信,实际应用中足够了,故没有对其他区进行操作
3\要点:
1)一次读取v区多个字节,
2)v区的位操作:置位和复位,在第1个文本框中输入v区地址,在第2个文本框中输入位
地址,如程序默认的地址是 V0.0
3)写一个字
4\注意:
实际应用中一次最多可以读取v区55个字节,否则会造成读取失败
5\安装:
附带MSCOMM32串口通信控件的安装程序。
代码×××××××××××××××××××××××
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MSCommLib_TLB, OleCtrls;
type
TForm1 = class(TForm)
MSComm1: TMSComm;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
StaticText1: TStaticText;
StaticText2: TStaticText;
Button3: TButton;
Edit3: TEdit;
Button4: TButton;
1
StaticText3: TStaticText;
Button7: TButton;
Button8: TButton;
Button10: TButton;
Button5: TButton;
Button11: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
str_write,str_val,CommRecvTxt: array of Byte;
Temp_FCS: byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
tmp: string;
begin
memo1.Lines.Add('W--------------------------');
SetLength(str_write,38);
str_write[0] := byte($68);
str_write[1] := byte($20); //package len
str_write[2] := byte($20); //package len repeated
2
str_write[3] := byte($68);
str_write[4] := byte($02); //plc station no
str_write[5] := byte($00); //pc default zero
str_write[6] := byte($7C); //6c read, 7c write
str_write[7] := byte($32);
str_write[8] := byte($01);
str_write[9] := byte($00);
str_write[10] := byte($00);
str_write[11] := byte($00);
str_write[12] := byte($00);
str_write[13] := byte($00);
str_write[14] := byte($0E);
str_write[15] := byte($00);
str_write[16] := byte($05);
str_write[17] := byte($05);
str_write[18] := byte($01);
str_write[19] := byte($12);
str_write[20] := byte($0A );
str_write[21] := byte($10);
//*****************************************8
str_write[22] := byte($02);
str_write[23] := byte($00);
str_write[24] := byte($01);// data len
str_write[25] := byte($00);
str_write[26] := byte($01);
str_write[27] := byte($84);// 04S ,05SM ,06AI ,07AQ ,1E C ,81I ,82Q ,83M ,84V ,1F T
str_write[28] := byte($00);
str_write[29] := (strtoint(edit1.Text) * 8) div 256;
str_write[30] := (strtoint(edit1.Text) * 8) Mod 256;
str_write[31] := byte($00);
str_write[32] := byte($04); //04为写入其他,03写入位
str_write[33] := byte($00);
str_write[34] := byte($08); //01bit, 08byte, 10word, 20dword
str_write[35] := byte(strtoint(edit2.Text)); //data
//str_write[35] := $10;
Temp_FCS := 0;
For i := 4 To 35 do
Temp_FCS := Temp_FCS + str_write[i];
memo1.Lines.Add(inttostr(temp_Fcs));
str_write[36] := Temp_FCS Mod 256;
3
str_write[37] := byte($16);
MSComm1.Output := str_write;
Sleep(100);
SetLength(CommRecvTxt,1);
CommRecvTxt := mscomm1.Input;
memo1.Lines.Add('begin');
if Length(CommRecvTxt) <> 0 then
begin
if inttohex(CommRecvTxt[0],2) = 'E5' then
begin
memo1.Lines.Add('E5');
MSComm1.Output := str_val;
Sleep(100);
SetLength(CommRecvTxt,512);
CommRecvTxt := mscomm1.Input;
if Length(CommRecvTxt) <> 0 then
begin
for i := Low(CommRecvTxt) to High(CommRecvTxt) do
tmp := tmp + inttohex(CommRecvTxt[i],2) + ',';
memo1.Lines.Add(tmp);
end
else memo1.Lines.Add('ok...zero');
end
else memo1.Lines.Add('error');
end
else memo1.Lines.Add('zero...');
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i: integer;
tmp: string;
begin
memo1.Lines.Add('R--------------------------');
//str_write := VarArrayCreate([0,32],varByte);
str_write[0] := byte($68);
4
str_write[1] := byte($1B); //package len
str_write[2] := byte($1B); //package len repeated
str_write[3] := byte($68);
str_write[4] := byte($02); //plc station no
str_write[5] := byte($00); //pc default zero
str_write[6] := byte($6C); //6c read, 7c write
str_write[7] := byte($32);
str_write[8] := byte($01);
str_write[9] := byte($00);
str_write[10] := byte($00);
str_write[11] := byte($00);
str_write[12] := byte($00);
str_write[13] := byte($00);
str_write[14] := byte($0E);
str_write[15] := byte($00);
str_write[16] := byte($00);
str_write[17] := byte($04);
str_write[18] := byte($01);
str_write[19] := byte($12);
str_write[20] := byte($0A );
str_write[21] := byte($10);
//*****************************************8
str_write[22] := byte($02); //01bit, 08byte, 10word, 20dword
str_write[23] := byte($00);
str_write[24] := byte($01); // data len
str_write[25] := byte($00);
str_write[26] := byte($01); //04为写入其他,03写入位
str_write[27] := byte($84); // 04S ,05SM ,06AI ,07AQ ,1E C ,81I ,82Q ,83M ,84V ,1F T
str_write[28] := byte($0);
str_write[29] := (strtoint(edit1.Text) * 8) div 256;
str_write[30] := (strtoint(edit1.Text) * 8) Mod 256;
Temp_FCS := 0;
For i := 4 To 30 do
Temp_FCS := Temp_FCS + str_write[i];
memo1.Lines.Add(inttostr(temp_Fcs));
str_write[31] := Temp_FCS Mod 256;
str_write[32] := byte($16);
MSComm1.Output := str_write;
5
剩余22页未读,继续阅读
「已注销」
- 粉丝: 106
- 资源: 35
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1