注册名:

密码:

个人注册

企业注册

商务申请

商务管理平台

企业管理平台

个人管理平台

我的工控博客

中国工控网www.chinakong.com

首页 | 新闻中心 | 工控论坛 | 经验视点 | 工控商务 | 电气手册 | 工控博客 | 招聘求职 | 网上调查 | 企业中心 | 供求信息 | 资料中心 | 工控书店

所在位置:工控论坛 -- PLC论坛 -- 西门子PLC论坛 -- PLC应用

中国工控网搜索:

 自动化企业招聘

更多..

 登陆:密码:  注册  密码

搜索:

发表人:lkl_xz 发表时间:2008/6/26 22:10:00  

 

 本栏论题: 西门子200PLC通信 ppi协议-delphi  [3379]

    由于站点暂时不能上传源代码文件,所以只能先贴上代码了
   
    1、本程序仅用于工控爱好者交流使用,鄙视用于商业的行径
    2、已开发出西门子s7-300plc的通信控件,可以与西门子各种型号plc进行
    通信。期望与感兴趣的同仁进行交流。
   
    作者邮箱: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;
    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
    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 :=

以下是关于《西门子200PLC通信 ppi协议-delphi》论题的回复(共1篇)

回复人:cn18show 

 回复时间:2009/9/26 7:10:00

支持(384) | 反对(361)

 

    易展成立五周年,50万回馈新老客户!易展旗下有仪表展览网,电子展览网,工控展览网、环保及易展国际等24个行业网站。活动官方网站:http://www.18show.cn/5/?m=189

如果要回复本栏论题,请首先中国工控网www.chinakong.com

·如果你已经是中国工控网www.chinakong.com成员,请直接登录。

·如果你还不是中国工控网www.chinakong.com成员,请首先注册,注册为免费!

注册名:

密  码:

           注册中国工控网www.chinakong.com
           忘记密码

关闭该窗口

关于我们     免责声明     服务项目     广告联系     友情链接     联系方式     意见反馈     设为首页     加入收藏

 ©2023-2025 中国工控网(www.chinakong.com) 版权所有 豫ICP备17046657号

管理员信箱:chinakong98@163.com  服务热线:13525974529

洛阳博德工控自动化技术有限公司

中国    洛阳