📄 omron_plc_fins.~pas
字号:
if (signal=25) then
begin
sSendcommand:=sSendcommand+'0522000005'; //read-memory D1314开始5个字(设定值);
scontent:=self.calc_response_fcs1(sSendcommand);
sSendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=2) then
begin
ssendcommand:=sSendcommand+'03E800000A'; //write memory D1000开始10个字节;
scontent:=inttohex(frmglass.spgyjgsj.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgydwjl.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgygwjl.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgybdsj.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyqhsj.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgylqsj.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfj1tq.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfm1tq.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfj2tq.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfm2tq.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
{2 时间设定
低温加热时间D1001高温加热时间D1002摆动时间D1003强化时间D1004冷却时间D1005
风机1提前时间D1006风门1提前时间D1007风机2提前时间D1008风门2提前时间D1009}
if (signal=3) then
begin
ssendcommand:=sSendcommand+'04B000001C'; //write memory D1200开始28个字节;
scontent:=inttohex(frmglass.spjljpbj.Value*frmglass.spjpscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjldwjpjs.Value*frmglass.spdwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjldwlc.Value*frmglass.spdwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjldwaq.Value*frmglass.spdwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjldwcp.Value*frmglass.spdwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjldwcpjs.Value*frmglass.spdwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlgwlc.Value*frmglass.spgwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlgwaq.Value*frmglass.spgwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlgwcp.Value*frmglass.spgwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlgwjs.Value*frmglass.spgwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlqhlc.Value*frmglass.spqhscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlqhaq.Value*frmglass.spqhscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlqhcp.Value*frmglass.spqhscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=inttohex(frmglass.spjlccsd.Value*frmglass.spdwscale.Value,8);
ssendcommand:=sSendcommand+copy(scontent,5,4)+copy(scontent,1,4);
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
{3 距离设定
进片步进D1200,D1201;低温进片减速D1202,D1203;低温炉长D1204,D1205;低温安距D1206,D1207;
低温出片D1208,D1209;低温出片减速 D1210,D1211;高温炉长D1212,D1213;高炉安距D1214,D1215;
高温出片D1216,D1217;高温减速D1218,D1219;强化炉长D1220,D1221,强化安全D1222,D1223;强化出片D1224,D1225,
超长设定D1226,D1227}
if (signal=4) then
begin
ssendcommand:=sSendcommand+'051400000E'; //write memory D1300开始14个字;
scontent:=inttohex(frmglass.spjpbjsd.Value*frmglass.spsdjp.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spdwdjsd.Value*frmglass.spsddw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spdwjpsd.Value*frmglass.spsddw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spdwjpjs.Value*frmglass.spsddw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spdwbdsd.Value*frmglass.spsddw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spdwcpsd.Value*frmglass.spsddw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spdwcpjs.Value*frmglass.spsddw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgwdjsd.Value*frmglass.spsdgw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgwbdsd.Value*frmglass.spsdgw.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgwcpsd.Value*frmglass.spsdqh.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgwcpjs.Value*frmglass.spsdqh.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spqhbdsd.Value*frmglass.spsdqh.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spqhlqbd.Value*frmglass.spsdqh.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spqhcpsd.Value*frmglass.spsdqh.Value,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
{4为速度设定 100时为输出6000
进片步进速度D1300;低温待机速度D1301;低温进片速度D1302;低温进片减速D1303;
低温摆动速度D1304;低温出片速度D1305低温出片减速D1306;高温待机速度D1307;
高温摆动速度D1308;高温出片速度D1309;高温出片减速D1310;强化摆动速度D1311;
强化冷却摆动D1312;强化出片速度D1313;}
if (signal=5) then
begin
ssendcommand:=sSendcommand+'0522000005'; //write memory D1314开始5个字;
scontent:=inttohex(frmglass.spgyfj1dj.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfj1qh.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfj2dj.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfj2qh.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=inttohex(frmglass.spgyfj3lq.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
{ 5 风机设定 1000时为6000,系数为6000/1000
风机1待机频率 D1314风机1强化频率D1315风机2待机频率D1316风机2强化频率D1317风机2冷却频率D1318}
if (signal=6) then
begin
ssendcommand:=sSendcommand+'03E9000001'; //write memory D1001开始9个字节;
scontent:=inttohex(frmglass.splowheat.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=7) then
begin
ssendcommand:=sSendcommand+'03EA000001'; //write memory D1002开始1个字节;
scontent:=inttohex(frmglass.sphighheat.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=8) then
begin
ssendcommand:=sSendcommand+'03EC000001'; //write memory D1004开始1个字节;
scontent:=inttohex(frmglass.spqh.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=9) then
begin
ssendcommand:=sSendcommand+'03ED000001'; //write memory D1005开始1个字节;
scontent:=inttohex(frmglass.splq.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=10) then
begin
ssendcommand:=sSendcommand+'0523000001'; //write memory D1315开始1个字节;
scontent:=inttohex(frmglass.spfj1qh.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=11) then
begin
ssendcommand:=sSendcommand+'0525000001'; //write memory D1317开始1个字节;
scontent:=inttohex(frmglass.spfj2qh.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=12) then
begin
ssendcommand:=sSendcommand+'0526000001'; //write memory D1318开始1个字节;
scontent:=inttohex(frmglass.spfj3lq.Value*6,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=13) then
begin
ssendcommand:=sSendcommand+'03E8000001'; //write memory D1000开始1个字节;
scontent:=inttohex(frmglass.spjgsj.Value*10,4);
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=14) then
begin
ssendcommand:=sSendcommand+'03FC000001'; //write memory D1020开始1个字节;
scontent:='FFFF';
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
if (signal=15) then
begin
ssendcommand:=sSendcommand+'03FD000001'; //write memory D1021开始1个字节;
scontent:='CCCC';
ssendcommand:=sSendcommand+scontent;
scontent:=self.calc_response_fcs1(sSendcommand); //计算fcs;
ssendcommand:=sSendcommand+scontent+'*'+chr(13);
end;
result :=sbuf;
end;
procedure Tomron_Fins.closecomm;
begin
self.fcomport.Connected:=false;
end;
constructor Tomron_Fins.create();
begin
{ fcomm:=Tcomm.Create(nil);
fcomm.OnReceiveData:=self.comm_receivedata;
fcomm.ByteSize:= _7;
fcomm.ParityCheck:=true;
fcomm.Parity:= Even;
fcomm.StopBits:= _2; }
fcomport:=Tcomport.Create(nil);
fcomport.OnRxChar:=self.comport_receivedata;
fcomport.BaudRate:=br38400;
fcomport.DataBits:=dbSeven;
fcomport.StopBits:=sbTwoStopBits;
fcomport.Parity.Check:=true;
fcomport.parity.Bits:=prEven;
inherited create();
end;
destructor Tomron_Fins.Destroy();
begin
self.fcomport.Free;
end;
procedure Tomron_Fins.comport_receivedata(Sender: TObject;
count: integer);
begin
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -