|
||||
辽宁营口( /资讯)积压电缆电缆
用户定义数据类型的生成和使用在SIMATIC管理器的左面窗口”块“,执行菜单命令插入-S7块-数据类型,生成新的UDT,在生成UDT的元素时,可以设置它的初始值和加上注释,如下图从表面上看UDT1与stack完全相同,但是它们有本质区别。结构(STRUCT)是在数据块声明视图方式或逻辑块的变量声明表中与别的变量一起定义的,但是UDT必须在特殊的数据块内单独定义,并单独存放在一个数据块中。生成UDT后,在定义变量时将它作为一个数据类型来多次使用,:在变量声明表中定义一个变量,其数据类型为UDT1,名称为ProData如下图上图可以看出,UDT在数据块中的使用方法与其他数据类型(如INT)是一样的。READ_VAR,WRITER_VAR,才是我们要真正使用的,它的作用就是写入和读取变量,看程序图六CFC编写的MODBUS通信程序如图六所示,是程序的全貌,程序实在太大了,大家可能要费点眼神了,黄色荧光笔部分是程序的启动按钮,当变量Com_En产生一个上升沿时,程序就会自动执行。 面红色大圆圈就是我们需要的结果。读取或写入的数据是放在数组里的,当你交互的数据是连续的时候,就很方便了。其实,CFC的精髓就是可以自由,就像电路图一样,像通讯程序中,由于前后功能块需要,我们就需要中间变量来传递,而直接使用连线,省去了建立中间变量的麻烦。读出数据时从PLC到变频器的发送数据格式上述数据格式中数据指的是PLC与变频器传输的数据。等待时间是规定变频器从收到PLC来的数据和传输应答数据之间的等待时间。根据PLC的响应时间在0~150ms之间设定等待时间,设定单位10ms。当变频器的Pr.123参数单元不设为9999时,则等待时间不由通信数据设定,通信数据格式中无等待时间。总和校验码是由被校验的ASCII数据的总和(二进制)的一个字节(8位)表示的两个ASCII数字(十六进制)。程序 终进入while;里纠缠去了,这个到好解释。现将while;语句屏蔽掉。我还以为程序不能被正确执行了呢,因为退出了main主函数,就像Render需要循环来实现一样(尽管刚刚闪灯的程序不在循环之内,但我还是不由产生了这一错觉)。程序执行的结果是:灯不停的闪烁!看到这个现象后的猜想及动作^-^:这块板坏了吧!(在带操作系统如linux字符界面下运行一个不带死循环的C语言文件完毕后就会返回到linuxshell程序中)。 |
|