如何在STEP 7 V 12 (TIA Portal)中使用WinAC ODK的共享内存接口(SMX)并且避免出现错误信息 “The address you entered is outside the permissible address area”?

n

描述
访问WinAC ODK的共享内存接口(SMX)在16k字节以上的IO地址。在程序块中输入IO 地址,在STEP7 V12 中得到了一条错误信息显示为"The address you entered is outside the permissible address area"。并且不能对块进行编译。n

例子
ID16384 //在STEP7 V12的编辑器 (STL, SCL)中不允许对以起始地址为16384 的IO地址进行直接访问。n

说明
访问WinAC ODK的共享内存必须使用间接寻址。程序运行时地址才确定下来。没有错误信息输出并且程序块能够被编译。n

下面的示例代码显示了如何通过SCL语言进行读写访问。程序通过国际助记符DWORD 数据类型进行编程。n

SCL - 读访问示例
n

命令 解释
#InVariable := %ID(16384):P; 运行时将来自共享内存的一个 DWORD 拷贝到变量"InVariable" 中。

SCL - 写访问示例
n

命令 解释
%QD(16384):P := #OutVariable; 运行时将变量"OutVariable" 拷贝到共享内存中。

下面的示例代码显示了如何通过STL语言进行读写访问。程序通过国际助记符DWORD 数据类型进行编程。n

STL - 间接寻址读访问
n

命令 解释
L 16384 装载SMX 地址
SLD 3 左移3位
T "InVariablePointer" 传递指针到存储器中
L PID ["InVariablePointer"] 间接访问PID16384
T "InVariable" 保存来自于SMX的值到变量中

STL - 间接寻址写访问

命令 解释
L 16384 装载SMX 地址
SLD 3 左移3位
T "OutVariablePointer" 传递指针到存储器中
L "OutVariable" 装载变量variable值
T PQD "OutVariablePointer" 写变量值到SMX 区域

附加信息

关于WinAC ODK主题的更多信息请参考条目 67217690

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc327567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论