QQ登录

只需一步,快速开始

WINCC变量组的使用

[ 复制链接 ]
WINCC变量组的使用

在300PLC中定义了30个DB块,每个DB是一个配方,共30个配方。每个DB块里还有大概400个变量,因此共1万多变量。

在wincc编程调用这些DB里的变量时,wincc中定义了1万多个外部变量。因此在编程赋值时超出了代码限制。

如果不使用wincc的配方功能,有没有其他办法能实现这些变量的赋值?

比如结构变量,能用在这儿吗?

赋值时,能使用函数或语句的办法能给变量批量赋值吗?而不是我现在一个个赋值的方法,导致我定义了1万个外部变量。


-------你可以定义一个公用db,包含你的配方参数和id参数,id的值为0~29,上位机直接给这个公共db赋值,然后plc中编程根据id的值的不同,把公共db中的配方数据保存到其他的私有配方db中,这样wincc和plc通讯的变量只要401个变量。


--------还应该建两个上传下载的中间标志位位变量,间接的变量不能一直写或者读。




-------能不能,先试试!如果不能一直读写,那wincc链接plc的变量还怎么连呀?配方参数当然可以一直把当前wincc的页面上的配方保存到plc的db中了。


---------或者直接id的变化好了,wincc先输入配方参数,最后输入id,然后下位机判断id发生变化,则把配方值写到id变化后对应的db中。写完后给id赋值一个超过配方范围的值,比如100,下次再输入配方和id的时候,id就又变化了,重复上面的工作。

如果想读配方的话,id就可以是正常范围了,然后plc中判断这个id的值为几,就把对应的配方值读到这个公共db中,wincc画面中io域链接这个公共db的变量。这个可以一直读的,不需要用边沿触发的功能。


-------应该是第一次上传将目标配方的值全部赋给间接变量上位机就看到了当前配方的值了,或者是在选择索引变化的时候触发上传一次,然后就是在所有的io域在输入完成时触发同一个下载标志位变量执行一次将当前间接变量的值赋给配方变量并且在下降沿时又要将当前配方的值反过来赋给中间变量这样写一次后要读它的当前值看有没有写成功,这样做不需要再做按钮单独上传下载了,另外也可以做两个按钮实现上传下载,每次更改配方后必须反向上传一次当前值确认修改了实际配方的值,如果用sfc20也可以判断它的返回值显示到wincc。


---------------谢谢您们的指导。

因为对wincc配方这块不熟悉,加上时间紧,所以采用了最笨最原始的方法。


----肯学就好。新手就是要一步一步地积累,视野就会越来越宽。看好你!


------30个配方可以存储在表格中,每行表格有400个数值,对 应400个变量,可以用用户归档实现,选用那个配方就下载那个,与PLC通讯的也只有400个变量,而且这样也不用建立30个数据块。我做过24个配方,但是每个配方的变量没有这么多,只有八个!


------因为对用户归档不熟悉,花了几天看了下wincc的归档,配方画面的格式好像比较死板,不能自由设定。

有介绍里又说,数据不能断电保存,总是担心,所以就放弃了归档功能的使用了。

这方面的教材好像少了点。



--------你可以用脚本读写Excel文件,把配方保存到Excel中,需要哪个配方再读回来。这样页减少了通讯量,我前面给你的方法是把配方数据保存到plc的db中,这个方法是把配方数据保存到上位机中。网上就有wincc读写Excel的例子


-----能具体说下吧?

用EXCEL表格?然后用什么方法读取写入?


-----用户归档的表格直接对应变量,很方便,下载传都可以


-----我抽空做一个发给你,你先看看,合适吗?


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索