我正在使用PLC,作为练习,我在C中编写一个小程序,以帮助我更好地理解C,PLC和梯形逻辑到C的转换.
我正在使用的PLC具有固定的存储空间,变量存储在"V存储器"位置.例如,我将温度值31存储在名为V3700的存储位置.因此,只要我需要操作温度,我就会在程序中使用V3700.为了模拟PLC存储空间,我只使用一个名为Vmem [65536]的数组.
PLC使用八进制寻址.所以在上面的例子中,V3700是八进制的,所以它实际上是0x7C0或1984(十进制).
我想做的是简化写作,Vmem[x]
所以我不必使用括号.例如:
//current method to store 31 to V3700 Vmem[3700] = 31; //How I want to address the array V3700 = 31; //Another example if(V3700 > 5) printf("V3700 is greater than 5.\n");
有什么方法可以缩写数组名称和地址吗?即使八进制部分太多而十进制值都可以工作,我也可以.我知道我可以#define
我正在使用Ubuntu 12.04和GCC 4.6.3进行开发.
没有比这更简单的方法了
#define V3700 (Vmem[3700])
如果你有很多这种情况,你可以编写一个程序,生成一个包含所有define语句的标题,以节省你全部输入.