是这样的,公司生产的产品功能都是一样的,只是控制的点数多少的问题,比如说,此台设备有10个温度测量,另一台设备,客户要求5个温度测量就可以了,10个人家不要。这样的话我就得去改程序,因为输入点少了5个,所以之前在第10个温度测量之后的输入点都往前移了(否则如果空着就浪费了PLC的点数,有可能会多加一个模块,造成资源浪费),我的想法是,既然产品的功能都是一样的,那能不能我这是一套万能程序,不管你怎么改,只要配置好,程序就会按照配置的参数进行逻辑判断?
当然这只是一个想法,目前还未找出有效的方法,只是能提供出一个大致的思路,见附件的图。
s7-1200的DB块数据是可以配置为掉电永久保持的。那我就要从DB块这里入手,首先我做一个上位机,上位机的列表如图右边所示,编号对应的是输入点,编号0对应的就是I0.0,对应的数据块是DB10.DBB0,编号1对应的就是I0.1,对应的数据块是DB10.DBB1,依次往下推,我指定好此输入点的功能类型,同时我做好和上位机的协议,比如说规定启动按键的功能代码是03,停止按键的功能代码是04,那么我配置好之后,通过通信,数据下发下去,PLC接收后处理,于是DB10.DBB0=03,DB10.DBB1=04并且保存了,这样,在按下0.1的时候,我就会判断I0.1&DB10.DBB0=03吗?如果是,就要输出Q0.6
问题:1.不知道怎样做才能输出Q0.6,因为我目前不知道如何才能将I0.0映射到Q0.6,虽然我清楚,但是程序不清楚。
2.大家有没有更好的思路?比方说进行配方什么的?请高手们各抒己见。
图片说明:
969f9fadd076af97854841d90FC96c77
最佳答案
你的基本思路是对的。
将所有输入点、输出点都和DB块信息关联,实现一一对应。
你遇到的问题,其实应该用一个FC就可以实现了。
你在生成DB块信息的时候,同时生成一个FC,将DB块的输出信号输出到输出点上;将输入点信号拷贝到DB块中。
不同的工程,通过ExCEl和VBA就实现了自动生成代码。
提问者对于答案的评价:
thanks
专家置评