回复:S7 PLC如何实现通过触摸屏改变数值从而改变输入输出对应的点位

已锁定

乔小闲

  • 帖子

    3
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2019-07-03

普通 普通 如何晋级?

发布于 2023-04-24 17:01:54

2楼

OK,搞出来了,除了本身的IO地址,还用了IO地址的两倍的BOOL地址和一倍的字地址(用来更改映射关系的变量,不可缺少的),

总共四类,四个作用,

第一类IO地址,外部硬件地址

第二类DB块地址,建立数组为8或者16的BOOL数组,IO直接映射到DB地址这些地址

第三类地址  ,程序直接使用的地址

第四类地址  字地址用来给数组变址映射到第三类用的

因为IO直接映射到了DB  BOOL数组地址

那么DB数组地址通过字地址变址再映射到第三类程序直接使用的地址就OK了


FOR #A := 0 TO 14 DO

    "输入映射".DI1[#A] := PEEK_BOOL(area := 16#81, dbNumber := 0, byteOffset := #A / 8, bitOffset := #A MOD 8);

END_FOR;

"Tag_1":= "输入映射".DI1["输入映射".DI1映射编号[0]];


上述程序,将IO地址用For循环映射到DB 数组16个 BOOL,这些是固定的。

DB 数组16个 BOOL在通过字变址逐个映射到程序直接用到的BOOL地址上就OK了。

前提是需要将8输入输出或者16输入输出按0-7或者0-15按顺序编号。


这样就可以实现通过更改"输入映射".DI1映射编号[0] 的数值变更到不同的IO点了。








评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15118条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。