回复:S7-200 Smart软件监视时,显示梯形图的逻辑结果是直接读出来的还是软件经过计算显示出来的?

wingwf2000

  • 帖子

    332
  • 精华

    0
  • 被关注

    1

论坛等级:侠士

注册时间:2021-06-23

钻石 钻石 如何晋级?

发布于 2026-05-25 16:16:20

38楼

展开查看
以下是引用wingwf2000在2026-05-24 14:48:04的发言 >35楼

下面是触摸屏上的模拟,有点像那么回事了

图中的M0.0之类的可以换成变量名称,看的更直观些

图中的触点都是向量图,但是是几个向量图的群组,因为触点左右的线条也需要控制颜色,线条的颜色反应了能流的状态,触点后面线条的颜色不仅和触点前面线条颜色有关,还和触点状态有关,所以在触摸屏里定义了很多中间变量来控制线条的颜色(图中需要12个临时变量),当然水平线条的颜色也是需要控制的,触点或线圈内中间的方块是触点的状态,方块的颜色当然也需要控制,而且和触点左右2边的颜色无关

上面的常闭点M0.4左边的线颜色控制变量搞错了,第二个和第三个颜色错了,不过很容易修改过来

为方便修改,直接在同一个宏里出来这些临时变量,下面是代码

macro_command main()
bool T=true
bool F=false

bool M0_0=false
bool M0_1=false
bool M0_2=false
bool M0_3=false
bool M0_4=false

bool M0_5=false
bool M0_6=false
bool M0_7=false
bool M1_0=false
bool M1_1=false

GetData(M0_0, "Siemens S7-200 SMART (Ethernet)", M, 0.0, 1)
GetData(M0_1, "Siemens S7-200 SMART (Ethernet)", M, 0.1, 1)
GetData(M0_2, "Siemens S7-200 SMART (Ethernet)", M, 0.2, 1)
GetData(M0_3, "Siemens S7-200 SMART (Ethernet)", M, 0.3, 1)
GetData(M0_4, "Siemens S7-200 SMART (Ethernet)", M, 0.4, 1)

GetData(M0_5, "Siemens S7-200 SMART (Ethernet)", M, 0.5, 1)
GetData(M0_6, "Siemens S7-200 SMART (Ethernet)", M, 0.6, 1)
GetData(M0_7, "Siemens S7-200 SMART (Ethernet)", M, 0.7, 1)
GetData(M1_0, "Siemens S7-200 SMART (Ethernet)", M, 1.0, 1)
GetData(M1_1, "Siemens S7-200 SMART (Ethernet)", M, 1.1, 1)

bool L01=false
bool L02=false
bool L03=false
bool L04=false
bool L05=false

bool L06=false
bool L07=false
bool L08=false
bool L09=false
bool L10=false

bool L11=false
bool L12=false

L01=T

L02=L01&M0_0
L03=L02&M0_1

L04=L01&M0_2
L05=L04&M0_3

L06=L01&(not M0_4)

L07=L03|L05|L06

L08=L07&M0_5
L09=L08&M0_6

L10=L07&(not M0_7)

L11=L09|L10

L12=L11&M1_0


SetData(L01, "Local HMI", "L01", 1)
SetData(L02, "Local HMI", "L02", 1)
SetData(L03, "Local HMI", "L03", 1)
SetData(L04, "Local HMI", "L04", 1)
SetData(L05, "Local HMI", "L05", 1)

SetData(L06, "Local HMI", "L06", 1)
SetData(L07, "Local HMI", "L07", 1)
SetData(L08, "Local HMI", "L08", 1)
SetData(L09, "Local HMI", "L09", 1)
SetData(L10, "Local HMI", "L10", 1)

SetData(L11, "Local HMI", "L11", 1)
SetData(L12, "Local HMI", "L12", 1)


end macro_command


这个触摸屏模拟梯形图监控,适合于变量在一个周期内最多只变化一次,若变化多次,只能反应出plc扫描周期结束的状态,所以若变量在一个周期内变化多次,就需要在plc内先进行处理一下再使用,不然监控的状态和实际结果对不上

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9426条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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