西门子SCL语言编写,用指针方法读取100个温度值,10行代码就能搞定
按如下方法一定可以实现,感兴趣的小伙伴敢快试试吧
1:在博途中建立一个1214项目,扩展模块为2个4AI/2AQ的模块,1个8AI的模块
2:注意,按照模块安放的顺序修改通道I/O地址,地址一定要连续,请参见如下三张图片进行设置。
I/O地址设置1
I/O地址设置2
I/O地址设置3
3:在软件中建立一个FC块,块的接口名称与数据类型如下图所示:
FC块的接口建立
程序代码如下:
//可以选择以下区域area:
//16#81:Input
//16#82:Output
//16#83:位存储区
//16#84:DB
//如果 AREA = DB,dbNumber则为数据块编号,否则为“0”
//待读取的地址 byteOffset
//的表示注释,可以不用写在程序中
程序内容
4:建立一个全局DB数据块,编号为DB3,优化的块访问,取消打勾
DB块的属性
在DB3中建立如下结构体的数组,但要按照每一个通道所接的仪表的量程,进行填写
量程设定
5:在OB块中调用建立的FC块子程序
主程序调用FC块
96为模拟量第一个模块第一个通道的地址
126为模拟量最后模块最后通道的地址
3为转换之后在存入数据的DB块编号
800为存入数据在DB块中首地址(数据块要改成非优化)
ARR_IN:工程量转换过程中的量程
6:强制表中建立如下IW的地址,填入0~27648之间一个数据,方便仿真
强制表
7:在DB3中再建立如下变量,DI1_1~4,DI2_1~4,DI3_1~8分别为模块通道转换之后的值,即实际温度值
结果输出
,