发表于:2023/9/20 19:30:36
#0楼
上贴用欧姆龙CP CJ 测试,感觉还可以,链接:http://bbs.gkong.com/archive.aspx?id=498518
接着干,今天玩西门子1200
测试Q区是可以的,系统指令还是非常好用的
截图来了
图1是效果图,我实际挂PLC测试OK
图二是程序图:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
使用方法:
ib_OnOFF是控制点位的TRUE&FALSE,逻辑程序控制它即可控制Q点输出
ii_ChBti是一个INT数据类型,指定CH+BIT,例如输入15,即表示Q1.5
用的是POKE_BOOL
ST程序:
//例如ii_ChBit输入是23,则表示是Q2.3
//23/10=2,表示是第 2 CH
//23-2*10=3表示第 0.3 bit
//AREA:16#82 { 16#81:输入 16#82:输出 16#83:位存储区 16#84:DB 16#2:外设输出(仅 S7-1500)}
#id_offset := INT_TO_DINT(IN:=(#ii_ChBit/10)); //CH
#ii_bit := #ii_ChBit - DINT_TO_INT(#id_offset * 10);//余数
POKE_BOOL(area:=#AREA,
dbNumber:=0,
byteOffset:=#id_offset,
bitOffset:=#ii_bit,
value:=#ib_OnOFF);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上就是西门子Q区的间接寻址,上位机直接改变ii_ChBit的数值就可以改变输出点位的目的。
以上未作限制,报错。望周知~
接着干,今天玩西门子1200
测试Q区是可以的,系统指令还是非常好用的
截图来了
图1是效果图,我实际挂PLC测试OK
图二是程序图:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
使用方法:
ib_OnOFF是控制点位的TRUE&FALSE,逻辑程序控制它即可控制Q点输出
ii_ChBti是一个INT数据类型,指定CH+BIT,例如输入15,即表示Q1.5
用的是POKE_BOOL
ST程序:
//例如ii_ChBit输入是23,则表示是Q2.3
//23/10=2,表示是第 2 CH
//23-2*10=3表示第 0.3 bit
//AREA:16#82 { 16#81:输入 16#82:输出 16#83:位存储区 16#84:DB 16#2:外设输出(仅 S7-1500)}
#id_offset := INT_TO_DINT(IN:=(#ii_ChBit/10)); //CH
#ii_bit := #ii_ChBit - DINT_TO_INT(#id_offset * 10);//余数
POKE_BOOL(area:=#AREA,
dbNumber:=0,
byteOffset:=#id_offset,
bitOffset:=#ii_bit,
value:=#ib_OnOFF);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上就是西门子Q区的间接寻址,上位机直接改变ii_ChBit的数值就可以改变输出点位的目的。
以上未作限制,报错。望周知~
[此贴子已经被作者于2023/9/20 19:38:17编辑过]