Search the Community

Showing results for tags ' etc. all the mb public/native function codes are supported. 32-bit integers/floats as single entity are supported with byte and word level swapping. a separate utility automates the data mapping to your plc logic. features -serial master (basic requ'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Found 348 results

  1. Hello,  I have two pressure transmitters connected to a tank. One at the top and one at the bottom. How can I calculate the level of the tank ? I know the height and Specific gravity of the materials.    Thank You  Pratik Jain
  2. I've setup an Omron NX102 PLC with two CIF105 cards communicating with about 40 MX2 VSD's (20 on each card). Generally it works pretty well. I used the attached document to set up the devices. The links on the document to the examples don't work, so I'm unsure if I missed anything. My problem is that every day, sometimes multiple times a day the communication seems to die. i.e I either loose the output to the VSD and nothing will run. Or it all runs but I loose the feedback, as in I get no running signal even though the drives are running causing a fault in my program. I'm at a bit of a loss as to what might be causing the issue. To resolve it, I put the PLC into program mode and back into run mode and everything is happy again.    Has anyone had a similar issue or offer any advise? MX2_Control_Serial.pdf
  3. Emerson (GE) memory map data types

     I've always had this Allen-Bradley memory map taped on my wall in my office. It used to be handy to use, until I remembered al of the prefix letters for each data type. Now I am using Emerson (GE) the old proficy software now called PAC ME machine edition. Now I'm finding it's about impossible to find the data type list amongst the thousands of help files, videos, ect... it seems like a simple thing to find, but I'm not having any luck. They use I and Q for regular inputs & Outputs, but there are R files, M files, S files, N files, G files, ect.... this is old-school PLC software that doesn't use tag names.   Is there a steadfast rule for each type, or can they be used for any type of data? Dazed and confused...  
  4. Hi Everyone,I have a customer that needs a CQM1H (CPU51) replaced. They purchased the processor new-old-stock from a source they found online. It arrived in the original packaging and had the safety label around the top of the unit, so it seems that it is as advertised and no need to suspect that it would have problems. I purchased secondhand, a power supply to attach to it and program it from the bench instead of in the machine. The customer also provided me with an SD card containing the project file(s) for the machine. I am able to load the project in CX-ONE (running on Win 7) just fine. My computer has a native serial port (COM1) and I built a programming cable to work with the DB9 peripheral port according to a diagram I found online.The processor powers up right away with the ERR/ALM continuously on. No other LEDs came on initially, and after a bit of playing around with communications settings, I finally landed the right protocol and my computer seemed to identify the processor correctly. I compiled the source and attempted a transfer to the PLC. I got some failed message (or maybe messages) at the end of the transfer. It did seem to send all of the binary code, it just ended with an error message that I unfortunately didn't write down or grab a screenshot.Anyway, what I have now is a PLC processor with the ERR/ALM LED on always, I've never seen it in RUN mode, and now after the programming attempt, I'm seeing the COMM LED strobing at about a .5sec frequency (with or without a cable attached to the peripheral port), AND I cannot get CX-Programmer to again acknowledge the processor anymore. I'd like to reset this back to the way it arrived to me, but can't figure out how to make that happen offline. The DIP switches don't seem to cause that effect. I should say also that the DIP switch settings are all OFF except 3 and 7.Any help is much appreciated!Thanks,John  
  5. Hi there! I've been looking for some fault codes table for the 1734-AENTR adapters, since I'd like to show a message in HMI with some information when there is a faulty adapter, but I haven't found anything on the internet. So my question is, is there any type of table like this for these adapters? Right now I have a PLC with some AENTR adapters in the program for testing, and since there is actually no adapter connected to it, I can see a 16#2024 error in the module properties, but can't seem to find that info in the module variables.   Do you guys have any clue on how to find this information in order to show it?   Thanks in advance!
  6. Hi,  I write a CAM function to sync 2 axis (Rotary & linear). i am using a virtual servo as master, and 2 physical servos as slave. The problem i facing is, with the exact same CAM profile setting, when difference speed used will give difference result of movement. Below is my setting, Master axis     linear motor move 0-180degree   0-500mm 180-360          500-0   when running with slow speed, it move following the CAM profile setting, however, when moving in fast speed, the linear motor will only move halfway then start to moving back 0 already. Has anyone encounter this issue before? is it i missed out some setting? Thanks.
  7. HI, I am trying to write a program to read the timer up to 2 seconds, then use that time to calculate the frequency per hour the machine is running. Could anybody point me in the correct direction to Read  %TMx.V & store that value.  I have done this with Omron, but do not use SoMachine Basic very much, so am a bit lost, I used 2 timers, one 20Ms to collect the number of the 2 second timer, set read reset. add the 20ms back on then do the calculation then multiply by 60, to got sheets per hour of a printing machine. It was suggested count how many over 36 seconds then multiply x100, but that is slow, mine was close enough & instant. Thank you.  
  8. Hi All, I need access to a the Safety function blocks within a safety CPU using sysmac studio on a machine we are upgrading.. Is there a generic password available to gain access? Best Regards, Paul  
  9. I am trying to connect a Panel PC (Bartec RS-422) and an Omron PLC (CJ2H RS-232) I am using a Kinematics 2199 RS232 to RS422 converter. Results: Testing software Multiway v9.5 1) Using a usb to rs-232 cable on another PC     - I am able to send and receive a hostlink commands between the panel rs-422 converter and the PC rs-232. commands come through correctly 2) Using the PC to connect to the PLC     - If I connect directly to the PLC using the usb to serial cable and a short adapter I made to map the Omron PLC pin out 2-2,3-3, 5-9, I can send and receive hostlink commands to the PLC. Everything works as expected 3) Using the Panel and the USB Cable    - If I connect the usb converter to the Panel I am also able to communicate with the PLC 4) using the RS-422 port on the Panel     - If I connect the panel RS-422 port and converter and then connect to the PLC. I can only send commands; I cannot get any responses come through from the PLC. My converter box has LEDs on the RX and TX channels and I can see the PLC tries to send something. But something must be corrupted as multiway does not show and response.  I have tried a bunch of things but I am at a loss on how to diagnose this issue. Since I can get the two PCs talking to each other sending and receiving, I can rule out any wiring issue between the converter box and Panel.  Since I can plug the USB into the Panel and get it to work correctly, I can rule out any operating system issues and PLC configuration issues. The only link I cannot verify is that from the converter box to the PLC, I am not sure if the PLC can push hostlink data that has not been requested.  I have no idea why I can write to the PLC but not read. If anyone can provide any insights, I would greatly appreciate it, It has been two days and I am stuck. I am looking at maybe getting a logic analyzer to try and see what the PLC is sending back, but that will be months away.  I am happy to try any suggestions       
  10. Hello, In GX Works2, what do asterisks before function block input and output variable names mean? Thanks,    
  11. Send data TXD548)

    Hi,   After a long time, searching for missing communication I think to have found the cause. In this CMP2A plc there is a receiving device connected to the RS-232 port. . During operation it can happen that in the same cycle there will be 2 functions to send different data.. I never receive those 2 data,  only 1 is received. I can set a delay for sending this but this seems to be 'overkill', Is there a simpler way to do this..? The 2 pics are part of the program. After putting the P_off before the other transmits, I always receive the TXD(48) DM1621...   Please advise,      
  12. Dear reader, I am writing a C# program using the library  ‘EasyModbus’ that needs to communicate with Siemens WinCC via the connection type ‘Modicon modbus’ I have written a version using the ‘float’ data type in WinCC and that works perfectly. Here my code fragment: Method to convert ‘double’ to bytes in C#: public static byte[] DoubleToModbusFloat(double value) {     byte[] bytes = new byte[4];     float floatValue = (float)value;     int intValue = BitConverter.ToInt32(BitConverter.GetBytes(floatValue), 0);     bytes[0] = (byte)(intValue >> 24);     bytes[1] = (byte)(intValue >> 16);     bytes[2] = (byte)(intValue >> 8);     bytes[3] = (byte)intValue;     return bytes; } Call of the method and loading of the modbus registers in EasyModbus: Bytes = PublicCode.DoubleToModbusFloat(TmpDbl); int n = (int)ModbusStartAddress + ((i - 1) * 2); mb.ModServer.holdingRegisters[n + 1] = (short)((Bytes[0] << 8) + Bytes[1]); mb.ModServer.holdingRegisters[n + 2] = (short)((Bytes[2] << 8) + Bytes[3]); So far so good – this works fine. But I also want to be able to use the ‘Double’ data type in WinCC because I sometimes need more precision than the 7 figures of the ‘float’. I thought it would simply be a case of doubling up the code so I wrote: Method to convert ‘double’ to bytes in C#: public static byte[] DoubleToModbusDouble(double value) {     byte[] bytes = new byte[8];     long intValue = BitConverter.ToInt64(BitConverter.GetBytes(value), 0);     bytes[0] = (byte)((intValue >> 56) & 0xff);     bytes[1] = (byte)((intValue >> 48) & 0xff);     bytes[2] = (byte)((intValue >> 40) & 0xff);     bytes[3] = (byte)((intValue >> 32) & 0xff);     bytes[4] = (byte)((intValue >> 24) & 0xff);     bytes[5] = (byte)((intValue >> 16) & 0xff);     bytes[6] = (byte)((intValue >> 8) & 0xff);     bytes[7] = (byte)(intValue & 0xff);     return bytes; } Call of method and loading of the modbus registers in EasyModbus: Bytes = PublicCode.DoubleToModbusDouble(TmpDbl); int n = (int)ModbusStartAddress + ((i - 1) * 4); mb.ModServer.holdingRegisters[n + 1] = (short)((Bytes[0] << 8) + Bytes[1]); mb.ModServer.holdingRegisters[n + 2] = (short)((Bytes[2] << 8) + Bytes[3]); mb.ModServer.holdingRegisters[n + 3] = (short)((Bytes[4] << 8) + Bytes[5]); mb.ModServer.holdingRegisters[n + 4] = (short)((Bytes[6] << 8) + Bytes[7]); However, this code does not work correctly. I have tried all combinations of byte and word reversal, and whatever I do WinCC either displays nonsensical values or ‘####’ showing that it cannot display the value. I have tried reading as much documentation as I can but it still looks to me as if I am doing the right thing. Also, I have downloaded a number of ‘modbus master’ code examples, and they seem to be able to read the ‘Double’ from my program without any issues. In WinCC I also see that there are two types of double – ‘Double’ and ‘+/- Double’ – I am also unsure as to why this is – there is no ‘+/- Float’ data type, which seems inconsistent to me. I am obviously missing something, but cannot seem to discover what exactly. I hope that someone can point me in the right direction as to what I am doing wrong. Please see attached word file for a picture of the configuration of the connection in WinCC.   Thanks in advance for any help !, Dave Long Double trouble.docx
  13. Does anyone know how to delete the row labeled as, "63 - station number" and "Driver - Host Name". Our IPs range from .50 - .90, I would like to associate the station with an IP that correlates to one another.     For example, Station 50 = xx.xxx.x.50, Station 51 = xx.xxx.x.51, etc However, when I go to add a station 63. I get the error dialog that tells me 63 can not be added because it already exist. I have had this problem in the past, but never got around to wanting to figure out how to solve it.    ** Jumped the gun ** (modified)  You can rename 63 to whatever number you choose it to be....  
  14. Emerson 90-30

    I'm working with Emerson 90-30 on proficy machine edition and I'm trying to use a string variable to display words on a graphical panel in target 2 but withing the code itself on target one I cant seem to understand how the reference address works? can some one explain how string variables function and how to use them?
  15. Hi All, I am Data Transferring Arrays of WORD's from a HMI to NX PLC. This Transfer may be a variety of data types, Likely just UINT and STRING[20]. It will be Imported to NX as an Array of Word What im trying to do is Populate my Structure from this Array of Word. I can do this by mapping them individually just fine. But i was hoping i could add them automatically. Much like when you assign EthernetIP tags and can link them to a structure and User Offset the Bytes. But i cant seem to Link the Array of Word to the Structure e.g. SENSORS_STORED:=DATA_2_IN; Says its impossible Anyone have any ideas how i could Populate this structure from a WORD Array without manually mapping and Converting Each? SENSORS_STORED.Fixture_ID:=WORD_TO_UINT(DATA_2_IN[0]); For Example is a workable way but is long winded and was hoping there is a easier way Thanks in Advance Dann  
  16. Data register over flow

    Hi, data registers are getting full, because of extremely high speed pulsing is there any way , if the data value in register goes above the capacity of 32 bit register, it automatically attaches itself to next set of data registers so lets say if data was written in D10,D11 Upon reaching the limit, it goes to D10, D11, D12, D13 please share if there is an alternate way to do this
  17. Data register over flow

    Hi, data registers are getting full, because of extremely high speed pulsing is there any way , if the data value in register goes above the capacity of 32 bit register, it automatically attaches itself to next set of data registers so lets say if data was written in D10,D11 Upon reaching the limit, it goes to D10, D11, D12, D13 please share if there is an alternate way to do this
  18. Hi, I'm Jovel, I'm new to learning how to program PLC. Just want to learn how to use Omron Sysmac Studio . I have a question about the Data Type Data Type - Structure ( Offset Type - Offset Byte )  / Union   I Don't Understand this 2 Data types and how going to use them, can anyone teach me and have a sample program? Thank you
  19. As the industry of plc and scada softwares continue to integrate more and more programming languages into their IDE, what is the most common language that should be learned by controls engineers (excluding Ladder Logic)?  I mainly use Python and VB for scripting but I am curious what languages other SCADA and PLC programming environments use. Should I be sticking to a specific language and learning it well or just know a little bit of them all? Let me know your thoughts!!
  20. CP1L Serial TXD Data Error

    Hi, I have a problem with serial communication (no protocol) using rs485 module, the received data is error. I'm using CP1L CPU, CP1W-CIF11 module as transmitter, and USB to RS485 converter as receiver. When I check the received data on PC, it's incorrect (bit error?). I just send 2 bytes data, 0x61 ('a') and 0x62 ('b'). My configuration: DIP switch CPU 4 = off, DIP switch CIF11 1 to 6 = on,on,on,off,off,off, 2 wire RS485. (I also attached the program and settings) https://postimg.cc/gallery/pr293Jc   Could you help me to solve this problem? Thanks   Program and Settings:     Result:   
  21. View File GE SRTP Ethernet Driver for .NET 6, .NET 5 & .NET Core. - ASComm IoT ASComm IoT for .NET 6.0, .NET 5.0 & .NET Core developers. Class library for use in Visual Studio.NET to create HMI/SCADA apps that communicate with GE/Emerson SRTP PLCs and compatible devices via Ethernet.   Does not require OPC. Does not require 3rd party drivers Visual Studio.NET 2017, 2019 and 2022 compatible All .NET 6.0, .NET 5.0 & .NET Core targets are supported, including Web, Windows, console, and service apps. Runs on Windows, Linux, Android and iOS Extremely high performance - 5~10 mSec typical transaction time Supports PACSystems family native tag names Abstract base classes allow you to write generic code that works with all drivers Synchronous and asynchronous read/write methods Data change notifications Provides common user interface across all driver classes No limit on number of devices or data points Multi-threaded for high data throughput Includes extensive help system Example applications with VB and C# source code included. Easily connect office systems to factory floor. Runtime-free for qualified applications Submitter Automated Solutions Submitted 12/05/22 Category Demo Software
  22. Version 1.4.0

    10 downloads

    ASComm IoT for .NET 7.0, .NET 6.0, .NET 5.0 & .NET Core 3.1+ developers. Class library for use in Visual Studio.NET to create HMI/SCADA apps that communicate with GE/Emerson SRTP PLCs and compatible devices via Ethernet.   Does not require OPC. Does not require 3rd party drivers Visual Studio.NET 2017, 2019 and 2022 compatible All .NET 7.0, .NET 6.0, .NET 5.0 & .NET Core 3.1+ targets are supported, including Web, Windows, console, and service apps. Runs on Windows, Linux, Android and iOS Extremely high performance - 5~10 mSec typical transaction time Supports PACSystems family native tag names Abstract base classes allow you to write generic code that works with all drivers Synchronous and asynchronous read/write methods Data change notifications Provides common user interface across all driver classes No limit on number of devices or data points Multi-threaded for high data throughput Includes extensive help system Example applications with VB and C# source code included. Easily connect office systems to factory floor. Runtime-free for qualified applications
  23. Hi, We have a discussion in our office concerning the correct way of wiring an external current signal 4-20mA to a 1756-IF16 module. (We do many different PLC brands and configurations, so my/our experience with Alan Bradley is of several years ago) We have several external current signals connected to these units. (And these systems are all situated on a ship.) Some are galvanic separated and others are not and have their 'own' power supply only a few are sensors that are loop powered by the Main PLC cabinet.   The issue: According to one colleague it is required to connect the RTN jumper wires to the negative of the main PLC cabinet to solve signal issues due to floating voltage. Although it will work, I am not sure if this is really necessary, and I don't like connecting the negative to other cabinets which have their own power supply... Alan Bradley does not indicate that this is required, only jumper wires to convert the circuit from voltage measurement to current. It is also disappointing that none of the (non-differential) examples of Alan Bradley show how to connect an external current signal (which would indicate if the extra negative to be needed)   Adding galvanic separators and connecting the RTN to the negative is in my opinion not so much a solution but an evasion of the question/issue.   Any knowledge out there? Thnx
  24. Serial question

    I have a cell phone modem connected to my Omron CP1L on serial 2   Here is the issue  I need to pull the phone number out of the msg received (receiving text messages)  I receive a text msg and a lot of other crap like time and date ect. RDX says store in D100 the problem is that after I receive the SMS I see the phone number and copy the number to D200 to D2xx The next text comes in and it is added to the length of the previous text and the new phone number is not in the same D area as the first.  It seems the only time the serial port works is if you declare 20 characters and you get 20 characters Works every time. But sometimes I may get 12 characters and other times I can get more than 100. I have used the restart and clear port command with no luck.  If I set RDX to a large number and receive complete will not come on and the next receive will be added to the first.  I need a clear buffer for each receive.  How do I get around this?  If you set the RDX to 10 but 12 characters were received the 2 extra characters will be in the buffer and added to the next receive.  I can’t use end receive if x because there is nothing that is always available in the msg. And even if I do any characters received after end code is left in the buffer and screws up the next receive. I have never seen anything like this. Any ideas? Thanks Rob  
  25. Hi All I am trying to connect Cognex OPC Server with Mircrosoft SQL Server (SMSS). Do you have any idea how to do that? I couldn't find relevant information online.