function db_read(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external "w95_s7.dll";
function db_write(blockno:integer;no:integer;amount:pointer;buffer:pointer):integer;stdcall;external "w95_s7.dll";
……
implementation
end.
在调试软件的主程序中调用该引入单元前,须将软件包prodave.pas文件加到工程中。这样才能在主程序中调用w95_s7.dll中的函数,具体程序调用实现如下:
implementation
uses prodave;
{$R *.DFM}
……
begin
plc_adr_table[0> := 2; {address} plc_adr_table[1> := 0; {segment id}
plc_adr_table[2> := 2; {slotno} plc_adr_table[3> := 0; {rackno} plc_adr_table[4> := 0;
res := Load_tool(1,"S7ONLINE",@plc_adr_table); //初始化链接
函数load_tool的作用在于初始化适配器,初始化参数的地址以及激活选定的界面。程序在读写PLC数据前应该用该函数初始化PC机与PLC的连接。
此函数传送以下3个参数:
no:此参数设置可激活连接的数量,连接个数可以达到16个。此例中,no=1;
device:用户驱动设备名称,如MPI驱动器的设备名为“S7ONLINE”;
plc_adr_table:连接部分的地址列表指针。
如果没有错误,此函数返回0,否则返回错误信息的相应十六进制代码。下面给出数据下载程序:
begin
error:=false;
table1.first; //定位到配方表的首记录
for i:=2 to 61 do //把60个配方数据写到DB2-DB61